[英]Why is onDestroy() called after onResume() when using back-button
當我開始我的android-activity時,首先調用onCreate()
,然后調用onResume()
。
當我按下后退按鈕返回主屏幕並再次點擊應用程序圖標時,首先調用onCreate()
,然后調用onResume()
然后再調用onDestroy()
。
我的應用程序仍處於活動狀態,但由於onDestroy()
將一些成員設置為null,因此執行某些操作會導致錯誤。
這是為什么?
更新:當我在按下后等待30秒后一切正常。 除了將一些變量設置為null和.interrupt()
后台線程之外,我沒有在onDestroy中做任何重要事情。
我自己想出來了。 我對Activity
理解是有缺陷的。 當然,Android在舊的 Activity
實例上調用onDestroy(),這可能在構造新的實例后幾秒鍾發生。
onDestroy
被調用,因為默認情況下,按回鍵會導致您的活動調用finish()
,這會啟動銷毀調用onDestroy()的活動。
為了防止在活動被破壞的情況下采取某些行動,請執行以下操作:
if(!isFinishing()) {
// do your action here
}
isFinishing是Activity的一種方法。
你在onDestroy()做了一些繁重的操作嗎? 我認為你的活動視圖被破壞了,但不是活動對象。 並且在實際銷毀上一個Activity對象之前,您點擊應用程序圖標。
我認為除了你所描述的內容之外還有一些東西。 Android不僅會阻止活動被破壞,還必須在主線程上發生。
症狀聽起來就像你有:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.