android handler发送消息需要注意的地方
16lz
2021-01-26
最近写的一个程序在进入和退出的时候总是莫名其妙的死机,跟了以下总算找到了出错的地方。程序在后台获取网络数据,同时更新主线程显示,
另起的线程根据handler发送数据给主线程
/*send city name*/
Message msg = new Message();
msg.what = MSG_ID_LOCATE;
msg.obj = cityname;
handler.sendMessage(msg);
msg.what = MSG_ID_PEOPLE;
msg.obj = people;
handler.sendMessage(msg);
在这里msg是申请的对象,而sendMessage是异步的,所以当再次使用msg发消息的时候,必须重新申请msg.
/*send city name*/
Message msg = new Message();
msg.what = MSG_ID_LOCATE;
msg.obj = cityname;
handler.sendMessage(msg);
Message msg1 = new Message();
msg1.what = MSG_ID_PEOPLE;
msg1.obj = people;
handler.sendMessage(msg1);
导致这个错误出现的原因是我之前做嵌入式开发用的是我们自己的写的一套GUI的时候,sendMessage都是同步,貌似minigui和ucgui也一样。
更多相关文章
- CommonsWare Android(安卓)Components
- Flash移动开发高级教程——创建Anroid & iPhone应用
- Android中如何获取系统中所有的应用程序
- Android中调用外部程序的方法[整理]
- Android(安卓)Permission 大全
- Android开发者指南(18) ―― Web Apps Overview
- android 退出应用方法一:点击两次退出应用
- unity3d发布Android程序
- Android错误提示:IMGSRV::0: gralloc_module_unmap: find buffer