博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
处理handler中的内存泄漏
阅读量:6275 次
发布时间:2019-06-22

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

package de.bvb.test;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import java.lang.ref.WeakReference;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        new Thread(new Runnable() {            @Override            public void run() {                //3.子线程中发送消息                handler.sendEmptyMessage(1);            }        }).start();    }    @Override    protected void onDestroy() {        super.onDestroy();        //4.在onDestroy把消息对象从消息队列移除        handler.removeCallbacksAndMessages(null);    }    //2.创建handler的实例    private Handler handler = new MyHandler(this);    //1.创建静态的自定义Handler类    static class MyHandler extends Handler {        private WeakReference
mWeakReference; //传入activity,加上弱引用 public MyHandler(Activity activity) { mWeakReference = new WeakReference<>(activity); } //在handleMessage处理业务 @Override public void handleMessage(Message msg) { Activity activity = mWeakReference.get(); if (activity != null) { switch (msg.what) { case 1: break; default: break; } } } }}

 

转载于:https://www.cnblogs.com/Westfalen/p/6185875.html

你可能感兴趣的文章
tableVIew删除时的delete按钮被挡住时重写的方法
查看>>
读cookie中文字符乱码问题
查看>>
招募译者翻译并发数据结构
查看>>
普通表转换为分区表
查看>>
Java 容器 & 泛型:三、HashSet,TreeSet 和 LinkedHashSet比较
查看>>
性能优化总结(六):预加载、聚合SQL应用实例
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>