Android中Message与Handler传输中的异常:This message is already in use.抢沙发

2013-12-16    分类:Android开发Java开发原创文章编程相关      

深夜打代码特别有灵感,遇到一个比较奇葩的问题。
背景:
Android系统中,多线程与Activity的传输是不能直接传参的,必须用Message或Loop、Handler来传递。如果对这个背景不了解的可以先阅读这篇文章:http://blog.csdn.net /jobshi/article/details/17341741
个人感觉难度不算太大。
异常:
android.util.AndroidRuntimeException: { what=1013 when=38975686 } This message is already in use.

示例代码:(由于界面过于简单我就不写了,只贴核心代码)
Message message = new Message();
                     message obj = vt;
                     message.what = 1;
                     handler.sendMessage(message);
        //大家注意这里,上下发送两个message共用的是一个Message对象。Handler在处理消息队列的时候可能会出现不稳定的bug报错
                     message obj = vt;
                     message.what = 1;
                     handler.sendMessage(message);
正确的写法应该是 :
Message message = new Message();
                     message obj = vt;
                     message.what = 1;
                     handler.sendMessage(message);
//只需要new两个消息对象就可以解决这个报错问题
Message message2 = new Message();
                     message2 obj = vt;
                     message2.what = 1;
                     handler.sendMessage(message2);

转载请注明:乔布尸 » Android中Message与Handler传输中的异常:This message is already in use.

继续查看有关 的文章

相关文章

我来说说

*

*

取消