[英]Activity Lifecyle Difference in Device's Back Button vs Actionbar's Back Button
我目前正在學習活動生命周期。 我注意到以下內容:
在ActionBar中使用向上彈鍵時,為什么要銷毀A而不是重新啟動?
我希望我的問題很清楚,否則請發表評論。
設備的“后退”按鈕實際上使您返回(返回上一個活動)。 動作欄的后退按鈕類似於“上移”按鈕(在應用程序的層次結構內)。 這就是為什么操作欄的后退按鈕不會將您帶到應用程序之外,而設備的后退按鈕會繼續將您帶到應用程序之外,甚至在應用程序之外。 操作欄存在於您的應用程序中,因此它遵循活動的生命周期方法,並在您每次返回時從頭開始,而設備從停止位置重新啟動。
編輯:
“后退”按鈕出現在系統導航欄中,用於按時間倒序瀏覽用戶最近使用過的屏幕的歷史記錄。 它通常基於屏幕之間的時間關系,而不是應用程序的層次結構。
( 在這里閱讀更多 )
當您按下BACK按鈕時,這將在當前Activity
調用onBackPressed()
。 該方法的(如果在沒有覆蓋的默認行為Activity
)是調用finish()
的Activity
。 這樣就完成了Activity
並恢復了其下面的Activity
。
UP按鈕使用具有如下所示的Intent
調用startActivity()
:
Intent intent = new Intent(this, TargetActivityForUpButton.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
此代碼會將堆棧中的所有活動移回TargetActivityForUpButton
,包括TargetActivityForUpButton
。 然后,它將創建TargetActivityForUpButton
的新實例並啟動該Actvity
(您將在Activity
上看到onCreate()
, onStart()
和onResume()
。
另請參見https://developer.android.com/training/implementing-navigation/ancestral中的 “導航至父級活動”部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.