在Android中利用Handler的原理主要是用来根据接收的消息,处理UI更新。Thread线程发出Handler消息,通知更新UI。

1.Handler在类中的写法:

private Handler handler = new Handler(){    @Override    public void handleMessage(Message msg) {        super.handleMessage(msg);        switch(msg.what) {            case 1:              //do something in main UI Thread            Bundle bundle = msg.getData();            break;        }    }};

2.在类中子线程调用Handler:

...Message msg = new Message();Bundle bundle = new Bundle();msg.setData(bundle);msg.what=1;handler.sendMessage(msg);...

3.使用Handler避免内存溢出的方法:移除所有的消息和回调,简单一句话就是清空了消息队列。注意,不要以为你post的是个Runnable或者只是sendEmptyMessage。你可以看一下源码,在handler里面都是会把这些转成正统的Message,放入消息队列里面,所以清空队列就意味着这个Handler直接被打成原型了,当然也就可以回收了。所以在外面的Activity或者Fragment中的关闭方法中,如onDestroy中调用一下handler.removeCallbacksAndMessages(null);

更多相关文章

  1. Android实现睡眠设置
  2. android 网络详解
  3. linux/android thread test
  4. Android(安卓)AsyncTask 完美解析 看不懂源码你就输了
  5. Android如何接收locale改变的消息 || locale改变后,发送什么消息
  6. Android(安卓)远程回调
  7. Android常用Dialog总结
  8. 《Android应用开发揭秘》读者问题汇总
  9. Android之Broadcast, BroadcastReceiver(广播)

随机推荐

  1. android小入门
  2. Android也谈android和多屏幕适配
  3. 基于android Material Design基础框架搭
  4. Android官方架构组件Paging-Ex:为分页列
  5. Android导入第三方静态库.a编译成动态库.
  6. android studio中svn的使用(关联svn、svn
  7. Android 使用Ant编译Android 工程
  8. Activity 之间通信
  9. Android定制权限重名引起的问题
  10. Android Canvas练习(2)自已绘饼图(Pie Ch