1

我有一个Activity适用于所有代码的游戏(活动 A)。然后我为我的新游戏模式创建一个新的Activity(Activity B),即extendsActivity A。但是,当遇到 Toast 行时,Activity B 突然抛出异常(Activity A 可以很好地显示 Toast):

Can't create handler inside thread that has not called Looper.prepare()

Activity B 只覆盖了一个负载级别的方法,没有任何区别!

4

1 回答 1

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 – UI 环境中的多线程文档。

于 2011-07-18T12:18:14.573 回答