[英]Android: Activity.onDestroy() is not called when Dalvik kills this Activity
我對Activity.onDestroy()
感到困惑。 當我的Activity被銷毀時我需要釋放一些資源,但是當我按下“后退”鍵時,似乎調用了onDestroy(),但是當我的活動被Dalvik殺死時卻沒有。 我只是通過添加日志來測試它:
Log.v("my_tag", "onDestroy() called");
和onCreate()方法一樣:
Log.v("my_tag", "onCreate() called");
然后我開始我的Activity,我在日志中看到: onCreate() called
。 我按“返回”鍵然后再次啟動活動,然后我看到:
onDestroy() called
onCreate() called
然后我按“Home”鍵再次轉到我的Activity,日志不會改變。 好的,這里。
然后我再次按“Home”鍵並啟動一些非常“重”的應用程序。 在日志中沒有關於onDestroy(),但是當我再次啟動我的Activity時,我在日志中看到: onCreate() called
! 因此,沒有調用onDestroy(),但我的Activity被殺了。 怎么了?
從onDestroy()文檔:
[..]有些情況下系統會簡單地殺死活動的托管過程,而不會在其中調用此方法(或任何其他方法),因此它不應該用於執行過程消失后要保留的內容。
在Android中,您將無法獲得有保證的onDestroy()
調用。
如果要釋放一些資源,則應該在onPause()
執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.