android handler 里面引用context有耗时操作是的正确打开方式
2018-01-12 18:08
281 查看
Handler
这个的话,我敢保证,你绝对有用过!
正确的使用方式是
这个的话,我敢保证,你绝对有用过!
private Handler recordHandler = new Handler() { @Override public void handleMessage(Message msg) { } };是不是绝大部分人都是这样来操作的?给我说中了吧,其实就跟上面说到的非静态内部类一样,将 Handler 声明为静态的, 则其存活期跟 Activity 的生命周期就无关了。同时通过弱引用的方式引入 Activity, 避免直接将Activity 作为 context 传进去。
正确的使用方式是
static class TestHandler extends Handler { private final WeakReference<Test> mActivityRef; TestHandler(Test activity) { mActivityRef = new WeakReference<>(activity); } @Override public void handleMessage(Message msg) { final Test activity = mActivityRef.get(); if (activity == null || activity.isFinishing()) { removeCallbacksAndMessages(null); return; } switch (msg.what) { } } }
相关文章推荐
- Android Dialog与软键盘的正确打开方式
- Android签名文件的正确打开方式
- Android应用程序漏洞防护措施打开的正确方式!
- Android使用异步的误区(关于Handler.post的操作方式)
- Android 读取文件的正确打开方式
- Android 里面的多线程操作备忘,关于Thread,Handler, Looper
- Android打开项目操作方式总结 & 新项目的项目架构
- Android Dialog与软键盘的正确打开方式
- Android多线程,让耗时的操作去后台,handler传递对象图片下载
- Handler的正确使用,使用静态内部类+虚引用,解决Context泄漏
- Android启动页面的正确打开方式
- android 的Handler处理UI主线程外的耗时操作
- cocos2d-x-3.9,js对ccs的Listview的item的Button如果有setEnabled 操作,在android手机的微信里面打开会出现上下滑动变卡
- 自学 Android的“正确打开方式”【全面详细】
- Android面试题-Service是否在main thread中执行, service里面是否能执行耗时的操作?
- Android——Exception异常的正确打开方式
- Android 关于SP读取与存储正确打开方式?
- Android底部弹窗的正确打开方式
- Android 多种方式正确的加载图像,有效避免oom
- ngrok在国内的正确打开方式