内存泄漏之thread浅析
来源:互联网 发布:nginx 1.8.0 编辑:程序博客网 时间:2024/05/30 02:22
今天工作碰到一个问题,一个留言界面要实现实时聊天。
我思路是开启一个线程,每隔1s就调用一次拿取聊天信息的接口,写个while语句。
一开始,我没有考虑到控制这个while的条件,我发现我退出这个界面,甚至我退出我的app,这个进程竟然还在跑,这就造成了内存泄漏。
后来我在onDestroy()方法里将while的条件设置为flase,这个thread就跑完了,跑完了也就完美的销毁了。
我之前想线程的stop()方法呀,destroy方法都过时了。强制中断线程不太好,果然还是让他跑完好啊。
下面贴上我的代码。
private boolean iscontinue=true;//是否结束循环
private Thread thread;
private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { if (msg.what==0x1242){ //刷新聊天界面 HttpUtils.getInstantce().getMessageOrderListByOrderSn(doctorMessageOrderItemUser.getOrderSn(), new HttpConstant.SampleJsonResultListener<Feedback<List<DoctorMessage>>>() { @Override public void onSuccess(Feedback<List<DoctorMessage>> jsonData) { list = jsonData.getData(); myAdapter.notifyDataSetChanged(); } @Override public void onFailure(Feedback<List<DoctorMessage>> jsonData) { ToastUtils.showErrorMsg("获取信息失败!"); } }); } super.handleMessage(msg); }};thread=new Thread(new Runnable() { @Override public void run() { while (iscontinue) { try { Thread.sleep(1000); Message msg=new Message(); msg.what=0x1242; handler.sendMessage(msg); } catch (InterruptedException e) { e.printStackTrace(); } } }});@Overrideprotected void onDestroy() { iscontinue=false; super.onDestroy();}
0 0
- 内存泄漏之thread浅析
- Thread内存泄漏问题
- 浅析内存泄漏
- JavaScript内存泄漏浅析
- 内存泄漏存在原因浅析
- 浅析C/C++内存泄漏的解决办法
- Android 内存浅析【泄漏、溢出】【一】
- Android 内存浅析【二】【泄漏、溢出】
- Android 内存浅析【泄漏、溢出】【二】
- 内存篇之堆泄漏
- Android内存泄漏之 handler
- Android 内存泄漏之handler
- Android内存泄漏之前因后果
- Android--在Activity中使用Thread导致的内存泄漏
- 在Activity中使用Thread导致的内存泄漏
- 在Activity中使用Thread导致的内存泄漏
- 在Activity中使用Thread导致的内存泄漏
- 在Activity中使用Thread导致的内存泄漏
- 编程成长日记————猜数字游戏
- 编程成长日记——折半查找
- Django数据库操作
- 编程成长日记——求Sn
- 编程成长日记——打印菱形图案
- 内存泄漏之thread浅析
- 编程成长日记——有意思的编程题(一)
- 编程成长日记——有意思的编程题(二)
- 编程成长日记——杨辉三角
- Docker Rest(Remote) API
- C++之浅谈类与对象
- AndroidStudio 依赖 ButterKnife 出现的空指针异常
- 数据结构之用栈实现逆波兰表达式
- iOS 环信集成方法之集成环信SDK