簡體   English   中英

可以在finish()之后恢復Android活動嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM