android上向主线程发消息时的一个常见错误
来源:互联网 发布:桃源网络硬盘破解 编辑:程序博客网 时间:2024/05/29 19:21
完整的报错信息是:
The specified message queue synchronization barrier token has not been posted or has already been removed.
我觉得一定有人搜索这句。
google翻译给出的结果是:指定的消息队列同步屏障令牌尚未发布或已经被删除。
感觉好像没什么用吗~~~
发生这个错误的一种情况是:在线程中向主线程发消息时使用的Message对象已经被发送过。
比如像这样给主线程发消息,发送第二个消息时就会报错,主线程能够收到并正确处理arg1=1000的那个消息(第一个消息)。
public void run(){Message msg=new Message();int count=0;while (true){try{Thread.sleep(1000);count=count+1000;msg.arg1=count;MainActivity.getInstance().getHandler().sendMessage(msg);} catch (InterruptedException e){e.printStackTrace();}}}
原因就是msg被重用了。要解决很简单,每次发消息new一个新的就行,像这样:
public void run(){Message msg=new Message();int count=0;while (true){try{Thread.sleep(1000);count=count+1000;////////////////////////////////////////////msg=new Message();///////////////////////////////////////////msg.arg1=count;MainActivity.getInstance().getHandler().sendMessage(msg);} catch (InterruptedException e){e.printStackTrace();}}}
1 0
- android上向主线程发消息时的一个常见错误
- 【Android】从主线程向子线程发消息
- android中实现在工作线程中向主线程发消息
- MFC如何在主线程中向view类发消息或是其他类向主框架类发消息
- Handler详解系列(二)——主线程向自身消息队列发消息
- Android Handler:子线程发消息到UI主线程
- Android主线程发消息给子线程
- android 主线程与子线程互发消息,以及自己给自己发消息
- android主线程向子线程发送消息
- Android主线程向子线程发送消息
- Android:主线程如何向子线程发送消息
- Android:子线程向UI主线程发送消息
- Android子线程向主线程发送消息实现
- android 子线程向主线程发送消息
- Android主线程如何向分线程发送消息
- Android消息通信机制(主线程发消息到子线程)
- Android之Handler(主线程,自己线程,其他线程互发消息)
- Android线程间通信二主线程发消息给子线程
- ajax get跨域 通过jsonp
- (总结)CentOS下安装官方RPM包的MySQL后找不到my.cnf
- android 画虚线、实线,画圆角矩形,一半圆角
- Android应用界面编程
- 开漏极、开集电极输出
- android上向主线程发消息时的一个常见错误
- ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
- Python的文件
- UNITY3D学习笔记3
- Android开源计划-一周开发app
- 剑指off-求两个数和为s在排序序列中
- 机器读卡后页面跳转问题(比如跳转到登录页面)
- visual studio 2015 下载地址
- netty 中MemoryAwareThreadPoolExecutor 简单分析