我啓動主要活動,更改UI中的一些設置,按回按鈕,然後重新打開活動。 onCreate()
被再次調用並且活動回到默認狀態。爲什麼是這樣?singleInstance啓動模式:爲什麼在活動結束前調用onCreate?
我希望只onResume()
被稱爲,因爲我有這樣的清單:
android:launchMode="singleInstance"
我啓動主要活動,更改UI中的一些設置,按回按鈕,然後重新打開活動。 onCreate()
被再次調用並且活動回到默認狀態。爲什麼是這樣?singleInstance啓動模式:爲什麼在活動結束前調用onCreate?
我希望只onResume()
被稱爲,因爲我有這樣的清單:
android:launchMode="singleInstance"
這是因爲,當你按下回來,這destroyes活動。 我認爲你想要的是當你回到這個活動時保持狀態,而不是真的有它的一個實例。所以你應該保存你需要的信息,然後在onCreate中恢復它們。
單實例僅意味着(如果我記得的話),如果您啓動多個活動而未完成它們,那麼當您調用startActivity()並且不會調用onCreate時,具有singleInstance的實例將返回到前端。但是這意味着你不能通過按回來產生這種行爲。 也許你可以重寫onBackPressed,並開始另一個活動(你應該回去),而不是調用super.onBackPressed()。這應該做你想做的事情,但如果認爲這將是一種難以管理。
順便記住活動可能由系統本身被殺死,所以你不應該依賴於一個事實,即你的活動不被打死
嘗試在onBackPressed()
使用moveTaskToBack(true);
,讓您的當前活動隱藏的,而不是破壞,所以你可以重新打開它
@Override
public void onBackPresses(){
moveTaskToBack(true);
}
我不知道這個方法!但是你仍然必須記住系統可以銷燬這個活動,所以不要依賴它沒有被銷燬的事實 – liltof
按後退按鈕銷燬目前在前面的活動,所以當你打開它應該真的打電話onCreate。 – Enzokie