如果我通過以下方式從Activity1啓動Activity2:startActivity(Activity2);
首先執行的是:onStop()
(Activity1)或onStart()
(Activity2)?Android活動生命週期:新活動開始時的狀態順序
他們同時工作還是輪流工作?如果一個接一個,首先是什麼?
所以一般情況下:如果這個訂單存在,第一個活動開始第二個活動的狀態順序是什麼?
如果我通過以下方式從Activity1啓動Activity2:startActivity(Activity2);
首先執行的是:onStop()
(Activity1)或onStart()
(Activity2)?Android活動生命週期:新活動開始時的狀態順序
他們同時工作還是輪流工作?如果一個接一個,首先是什麼?
所以一般情況下:如果這個訂單存在,第一個活動開始第二個活動的狀態順序是什麼?
關鍵是瞭解活動是如何開始的。當您在startActivity()方法中發佈Intent時,您只需要請求系統啓動此活動。下一個系統嘗試啓動Activity2並將消息發送到Activity1。訂單未確定,可能因不同情況而有所不同。
看起來像我前面回答是錯誤的情況時,這兩個活動的工作原理是相同的過程中(APP) 正如指出的丹尼爾·波波夫:https://developer.android.com/guide/components/activities/activity-lifecycle.html(協調活動部分)
訂單已確定 - http://developer.android.com/guide/components/activities.html#CoordinatingActivities – 2014-10-28 10:33:20
Android開發人員網站已更新,「協調活動」部分是在https://developer.android.com/guide/components/activities/activity-lifecycle.html – Sungam 2017-02-28 20:36:37
使用日誌將日誌發佈到Logcat。
Log.v("STATE", "Pause...and so on");
當過我們的第一個活動到第二則 導航首先調用onPause()方法,然後調用onStop(),然後調用第二個activity的onCreate()方法,然後調用onStart()和onResume()。通過按壓返回鍵導航回到firstactivity當
另外
的onPause()第二活性的方法被稱爲隨後的onStop(),然後第一個活動的方法onRestart()由在onStart稱爲後跟()然後onResume()。
我剛添加了一些日誌代碼到我的應用程序,我看到一個不同的圖片:1)Activity1 onPause()2 )Activity2 onStart 3)activity2 onResume()4)Activity1 onStop()。 – 2013-12-19 20:07:47
根據文檔,Activity1上的onStart在Activity1上的onStop之前被調用(或者,如果您願意,則在調用Activity1上的onStop之前,os等待Activity2上的Start開始完成)。
從:
生命週期回調的順序是明確定義的,特別是當這兩種活動都在相同的過程和一個在開始其他。以下是活動A啓動活動B時發生的操作順序:
活動A的onPause()方法執行。 活動B的onCreate(),onStart()和onResume()方法按順序執行。 (活動B現在擁有用戶焦點。) 然後,如果活動A在屏幕上不再可見,則執行其onStop()方法。
Android開發人員網站已更新,「協調活動」部分位於https://developer.android.com/guide/components/activities/activity-lifecycle.html – Sungam 2017-02-28 20:37:08
讓說活動A由調用StartActivity(意向)方法開始活動B然後生命週期呼叫是這樣的: -
Now按鈕點擊startActivity(意向)
甲的onPause()
乙調用onStart()
乙的onResume()
甲的onStop()
... ..............如果您按下返回按鈕活動B然後生命週期呼叫將...
乙的onPause()
甲onRestart()
甲調用onStart()
甲的onResume()
B onDestory()
現在多一個場景
A 「從活動由上按鈕點擊呼叫StartActivity(意圖),並使用光潔度()方法中的OnStart()方法在活性B A開始活動B」的onPause()
乙調用onStart()
甲的onResume()
乙的onStop()
乙onDestory()
生命週期回調的順序是明確定義的,特別是當這兩種活動都在相同的過程和一個在開始其他。以下是活動A啓動活動B時發生的操作順序:
活動A的onPause()方法執行。 Activity B的onCreate(),onStart()和onResume()方法按順序執行。 (活動B現在擁有用戶焦點。)然後,如果活動A在屏幕上不再可見,則執行其onStop()方法。
只需重寫activity1中的onStop()和activity2中的onStart(),放置一些日誌記錄並查看哪個日誌記錄先到達。 – hovanessyan 2012-04-01 09:41:35
http://stackoverflow.com/a/8516056/265167 – 2012-04-01 10:14:23