首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Open GL更新线程中运行UI线程的处理程序

如何在Open GL更新线程中运行UI线程的处理程序
EN

Stack Overflow用户
提问于 2012-10-17 09:45:27
回答 2查看 544关注 0票数 1

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

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

请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-17 09:54:34

因此,如果您想在UI线程上运行某些东西,则必须在UI线程上构造处理程序,并以某种方式将其传递给工作线程(通常是在线程对象构造期间,显式或通过闭包)。

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

票数 1
EN

Stack Overflow用户

发布于 2012-10-17 09:56:11

这在异常中很清楚:没有Looper.prepare()。除UI(主)线程外,在线程中使用handler之前,您必须始终调用Looper.prepare。演示代码:

代码语言:javascript
复制
Looper.prepare();
Message msg = new Message();
msg.what = 100;
handler.sendMessage(msg);

希望这条简单的信息能帮助你,Google docs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12925943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档