博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Activity onDestroy() 不回调的解决方式
阅读量:2222 次
发布时间:2019-05-08

本文共 868 字,大约阅读时间需要 2 分钟。

用Activity的时候,会发现如下问题:

  有时候会发现Activity的onDestroy方法回调不执行,或者延时执行,比较缓慢(可以达到好几秒钟之后才调用),即使之前使用finish方式关闭Activity也一样

onDestroy回调慢带来什么问题呢?

  有可能再次打开Activity的时候,都走完了onCreate,onResume之后上一次的onDestroy方法才被调用,想想如果在onResume和

onDestroy中共同维护了一个变量(isActivityShowing --> Activity是否正在显示),这个时候这个状态就错了。

解决方法与建议

  所以建议不要在Activity的onDestroy方法中做有关于数据存储,状态维护的事情,回收资源也最好不要完全依赖这个方法,可以用下面的方式

建议用以下方式绕过这个坑。

//定义一个标志表示资源是否释放    private boolean mIsDestroyed = false;    private void doDestroy()  {        if (mIsDestroyed ) {            return;        }        // 释放静态资源        OkHttpUtils.getInstance().cancelTag("getinfo");        //     mIsDestroyed = true;    }    @Override    protected void onPause() {        super.onPause();        if (isFinishing()) {            doDestroy();        }    }    @Override    public void onDestroy() {        super.onDestroy();                doDestroy();    }

 

转载地址:http://puvfb.baihongyu.com/

你可能感兴趣的文章
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
日本語の記号の読み方
查看>>