首先说一下需求在Activity中弹出一个dialog,dialog中有一个动画
却遇到一下错误
· 解决方法:
是因为在一个线程内发消息用同一个Message对象导致的。
原来错误的写法:
singleThreadExecutor.execute(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
Message msg_1 = new Message();
msg_1.what = KEY_1;
mHandler.sendMessage(msg_1);
Thread.sleep(1600);
msg_1.what = KEY_2;
mHandler.sendMessage(msg_1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
修改后正确的写法:
singleThreadExecutor.execute(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
Message msg_1 = new Message();
msg_1.what = KEY_1;
mHandler.sendMessage(msg_1);
Thread.sleep(1600);
Message msg_2 = new Message();
msg_2.what = KEY_2;
mHandler.sendMessage(msg_2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
总结:在线程内发送消息不要用同一个Message对象,解决办法很简单new Message();皆可以解决