处理handler中的内存泄漏
2024-08-25 13:15:45
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<Activity> 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;
}
}
}
}
}
最新文章
- windows中查看开机时间
- Creating Dialogs
- 关于一些网络代理实现智能流量分流的研究(PAC脚本介绍及利用)
- Hadoop_MapReduce流程
- JQ中mouseover和mouseenter的区别
- Linux /proc、/dev Principle
- netstat 查看TCP状态值
- ODBC连接mysql
- Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法
- 在HTML中添加目录
- pjsip视频通信开发(上层应用)之数字键盘的制作
- 关于WinRT中c++和c#相互调用的问题
- Linux 软件源设置
- JAVA环境配置---------jdk安装路径中存在空格的问题
- <;poj - 2139>; Six Degrees of Cowvin Bacon 最短路径问题 the cow have been making movies
- Node.js项目APM监控之New Relic
- 【BZOJ1305】跳舞(网络流)
- 一套代码小程序&;Web&;Native运行的探索05——snabbdom
- Autofac使用
- C# Modbus协议中读取浮点数的操作方法