关于onDestroy资源释放的问题

Activity关闭的时候没有调用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

你可能感兴趣的:(android)