您的位置:首页 > 移动开发 > Android开发

This message is already in use错误及解决

2015-07-29 16:19 706 查看

对同一个消息对象,重复多次发送便会报This message is already in use错误。解决方法就是重新获取消息对象。

情形一:

例如:

Message msg = myHandler.obtainMessage();

msg.arg1 = 1;

myHandler.sendMessage(msg);
msg.arg1 = 2;

myHandler.sendMessage(msg);

应修改为:

Message msg = myHandler.obtainMessage();

msg.arg1 = 1;

myHandler.sendMessage(msg);

msg = myHandler.obtainMessage();

msg.arg1 = 2;

myHandler.sendMessage(msg);

情形二:

报错的:

public void onMessage(Message msg) {
handler.sendMessage(msg);
}

修改后的:

public void onMessage(Message msg) {
if(handler.obtainMessage(msg.what, msg.obj) != null){
Message _msg = new Message();
_msg.what = msg.what;
_msg.obj= msg.obj;//或者_msg.setData(message.getData());
msg = _msg;

}
handler.sendMessage(msg);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 小错误