![](/img/trans.png)
[英]Android : Order of DialogFragments changing after Activity is resumed
[英]Can an Android Activity be resumed after finish()?
檢查一些遺留代碼我發現這個片段:
@Override
public void onResume() {
if (!isFinishing()) {
...
}
super.onResume();
}
盡管在方法結束時調用了super.onResume()
,但不鼓勵:
注意:在執行任何工作之前,您對這些生命周期方法的實現必須始終調用超類實現,如上面的示例所示http://developer.android.com/guide/components/activities.html
我關注if (!isFinishing())
調用,這有意義嗎? 我可以看到檢查活動代碼mFinished
變量僅在finish()
和finishActivity()
上設置為true,可以通過Android生命周期恢復正在銷毀的活動嗎?
提前致謝。
你回答的問題是“不”活動如果被銷毀就無法恢復。
這是一個很好的討論: 了解isFinishing()
這段代碼的原因可能是區分方向更改和活動的實際完成。重要的是要注意這里isFinishing:true表示在onDestroy()中調用
isFinishing()
()會返回true,即在以下情況下發生:用戶點擊“返回”按鈕或活動的代碼調用它的
finish()
(isFinishing()
在電話輪換后活動關閉時返回false,以便再次啟動)
http://ogrelab.ikratko.com/activity-lifecycle-explained-in-details/
最后,遺留代碼在onCreate()
方法的某些環境下調用finish()
。 但是看看onCreate()
javadoc :
您可以在此函數中調用finish(),在這種情況下,將立即調用onDestroy(),而不執行任何其余的活動生命周期(onStart(),onResume(),onPause()等)。
所以,這個isFinishing()
調用在onResume()
里面沒用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.