2013-03-20 141 views
0

這是一個非常基本的問題,我有幾個屏幕,現在當你從一個屏幕到另一個屏幕時,你可以按回來並循環回所有的窗口。Android屏幕管理

我寧願當你壓回你花了一個特定的窗口,例如:

  • 菜單屏幕 ---->用戶點擊信息
  • 信息屏幕 ---- >用戶點擊換乘信息
  • 換乘信息 ---->用戶點擊回
  • 信息屏幕

現在,這是關於層次結構的父親,這是否會定義它返回的位置?

我的問題的第二部分是,如果我沒有任何資源來發布或信息存儲一個簡歷,當用戶暫停我的應用程序時該怎麼辦?目前,如果你回到菜單屏幕並重新選擇應用程序,它將啓動一個新的實例,而不是恢復。我只是簡單地實現:

@Override 
public void onPause() { 
    super.onPause(); // Always call the superclass method first 
} 

@Override 
public void onResume() { 
    super.onResume(); // Always call the superclass method first 
} 

道歉,如果這是一個有點基本的!

回答

1

你可能想在看向你的意圖設置標誌,同時打開新的活動Android Dev

事情是這樣的 -

Intent a = new Intent(this,A.class); 
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(a); 
1

這裏沒有基本的問題:)要做到這一點

最簡單的方法是重寫onBackPress()函數。

樣品:

@覆蓋 公共無效onBackPressed(){// 你想在這裏 什麼}

爲了節省變量,當用戶離開應用程序,你需要重寫onSaveInstanceState(Bundle bundle)

@Override protected void onSave InstanceState(Bundle bundle){super_onSaveInstanceState(outState); bundle.putInt(「sample」,1); }

+0

有時候我會遇到類似這樣的問題,我覺得我必須跳過一個重要的課程,並且不得不提問真的很基本!感謝您的支持。當用戶離開應用程序時,我不想保存任何內容。我寧願當前窗口只是在恢復時重新創建。但實際發生的情況是,如果我最小化並通過啓動器返回,應用程序的新實例將從第一個屏幕啓動? – 2013-03-20 13:51:11

1

爲了您的兩個部分:

1 )讓Android處理後退按鈕幾乎總是最好的,後退按鈕的順序由後退棧確定:see here for an explanation。如果您需要分級導航,我建議您查看up按鈕 - 請參閱this developer page以獲取有關如何使用不同導航工具的詳細說明。

此外,如果您不希望活動出現在您的後退堆棧中,您可以在清單中設置屬性android:noHistory="true",這意味着用戶無法使用後退按鈕返回到它。

2)如果用戶已經離開您的應用程序,它會自動暫停,您不需要執行或onResume發生這種情況。但是,操作系統也終止收集。如果發生這種情況,那麼當用戶再次從啓動器打開它時,它將重新啓動。任何以前運行的應用程序實例都應該自動打開。

+0

沒有歷史的事情聽起來像做我想要的最簡單的方法。 如果自動調用onPause和事情,爲什麼當我通過菜單上的啓動器圖標繼續我的應用程序時,它會啓動一個新實例並且不像其他應用程序那樣打開應用程序,而不是像其他應用程序那樣打開應用程序? – 2013-03-20 13:49:26

+0

這肯定是你放在某個地方的東西,因爲我所有的應用程序都會自動回來。如果你發佈你的清單,它可能是在那裏... – 2013-03-20 14:03:06

+0

鏈接到清單:http://pastebin.com/N0Awp3gG 我希望這是一個簡單的解決方案,因爲這將解釋爲什麼我認爲我'我錯過了學習中的一些關鍵步驟。 – 2013-03-20 14:52:31