1.关于Handler的使用,在Activity或者Service中使用Handler,通常会使用匿名内部类的方式来定义handler,但是这种方式,开发工具会报出This Handler class should be static or leaks might occur 。意思是,Handler类应该定义为static的,否则会造成内存泄漏。推荐使用如下的代码解决这个问题:
private static class UIHandler extends Handler{ WeakReference<AddCheckTeskActivity> mActivity; private UIHandler(AddCheckTeskActivity activity) { mActivity = new WeakReference<AddCheckTeskActivity>(activity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); AddCheckTeskActivity act=mActivity.get(); //调用所在activity的实例方法 act.generateLawDialog(); //调用所在activity的实例变量的方法 act.lawDialog.show(); DialogUtils.closeDialog(); } }
在Handler中把对Activity的引用定义为WeakReference的,WeakReference表示在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存,
2.子线程中使用Handler的方式:
定义子线程的Callback类:
class ChildCallback implements Handler.Callback { @Override public boolean handleMessage(Message msg) { //耗时的代码 return false; } }
主线程中定义HandlerThread ,并且启动线程
HandlerThread handlerThread = new HandlerThread("downloadImage"); //必须先开启线程 handlerThread.start();
在需要的使用ChildCallback创建Handler,并且发送消息:
childHandler = new Handler(handlerThread.getLooper(),new ChildCallback()); childHandler.sendEmptyMessage(0);
相关推荐
【Android开发入门】Android线程之Handler
初中级Android开发社招面试之Handler
初中级Android开发社招面试之Handler
Android开发工程师面试题之handler详解。android程序员,android开发面试资料,详解
Android中handler的使用,处理多线程的使用
android demo,使用Handler的postDelay,Runnable run实现延时3秒的splash。
android 实例 Activity 之间通过 Handler 通信
Android的Handler使用方法总结,不错的文档,跟大家分享分享
在Android中使用AsyncTask和Handler线程间交互的方式,详情参见博客:http://www.cnblogs.com/plokmju/p/android_AsyncTask.html和http://www.cnblogs.com/plokmju/p/android_Handler.html
Android中多线程的Handler的工作原理,其中涉及到MessageQueue和Looper。详情可以参见博客:http://www.cnblogs.com/plokmju/p/android_Looper.html
Android Handler类详解 Android Handler类详解 Android Handler类详解 Android Handler类详解
android Handler的使用,我也刚开始学习,从别处下载了给大家分享
NULL 博文链接:https://aarongo.iteye.com/blog/1914538
【Android 开发】: Android 消息处理机制之 Handler 中 sendMessage() 源代码剖析 http://blog.csdn.net/ahuier/article/details/17013647
android_Handler整理总结.doc
Android Handler传值的,简单的介绍了Handler的用法
整理了Handler的各种使用方法
1.handler是什么? 2.handler怎么用? 3.为什么要用handler?
android handler runnable使用实例(关键是内部run中停止)