1

所以我正在尝试实现 In-App-Billing,问题是我需要 BillingHelper/ReponseHandler 在 UI 线程上运行。当我在我的 Screen 类中创建处理程序时,它只继承 Activity 作为参数。并在 Open GL 线程上运行,我收到以下错误。

10-16 18:36:28.500: E/AndroidRuntime(28263): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

请帮忙。

4

2 回答 2

1

处理程序需要在您希望发布的可运行文件执行的线程上构建。因此,如果您想在 UI 线程上运行某些东西,您必须在 UI 线程上构造处理程序并以某种方式将其传递给工作线程(通常在线程对象构造期间,显式或通过闭包)。

不过也有捷径。该方法Activity.runOnUiThread()接受Runnable并在 UI 线程上执行,不需要处理程序。

于 2012-10-17T01:54:33.627 回答
0

Exception: No Looper.prepare() 中很清楚。除了 UI(main)thread,在线程中使用处理程序之前,您必须始终调用 Looper.prepare。演示代码:

Looper.prepare();
Message msg = new Message();
msg.what = 100;
handler.sendMessage(msg);

希望这个简单的消息可以帮助你,谷歌文档

于 2012-10-17T01:56:11.027 回答