我有一个适用于所有代码的游戏Activity
(活动A)。然后我为我的新游戏模式创建一个新的Activity
(活动B),即extends
活动A.但是,当遇到Toast行时,活动B突然抛出一个异常(活动A很好地显示了吐司):
Can't create handler inside thread that has not called Looper.prepare()
活动B仅覆盖负载级方法,没有任何差异!
答案 0 :(得分:9)
试试这个:
Handler innerHandler;
(new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
innerHandler = new Handler() {
@Override
public void handleMessage(Message message) {
Toast.make(...);
}
@Override
public void dispatchMessage(Message message) {
handleMessage(message);
}
};
Message message = innerHandler.obtainMessage();
innerHandler.dispatchMessage(message);
Looper.loop();
}
})).start();
可能有一种更简单的方法来处理这个问题。请参阅Android – Multithreading in a UI environment文档。