關於onDestroy資源釋放的問題
1、activity被手機記憶體強制回收是不會呼叫
2、外部強制關閉程序,或者異常崩潰的時候
阿里開發規範也要求:
【推薦】不要在 Activity#onDestroy()內執行釋放資源的工作,例如一些工作執行緒的
銷燬和停止,因為 onDestroy()執行的時機可能較晚。可根據實際需要,在
Activity#onPause()/onStop()中結合 isFinishing()的判斷來執行。
網上有人寫的:
可以參考:
private boolean isDestroyed = false;
private void destroy() {
if (isDestroyed) {
return;
}
// 回收資源
isDestroyed = true;
}
@Override
protected void onPause() {
super.onPause();
if (isFinishing()) {
destroy();
}
}
@Override
public void onDestroy() {
destroy();//需要在onDestroy方法中進一步檢測是否回收資源等。
}
參考:
https://blog.csdn.net/Heijinbaitu/article/details/79153635