Android利用Handler更新主线程UI
16lz
2021-01-24
在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);
更多相关文章
- Android实现睡眠设置
- android 网络详解
- linux/android thread test
- Android(安卓)AsyncTask 完美解析 看不懂源码你就输了
- Android如何接收locale改变的消息 || locale改变后,发送什么消息
- Android(安卓)远程回调
- Android常用Dialog总结
- 《Android应用开发揭秘》读者问题汇总
- Android之Broadcast, BroadcastReceiver(广播)