【发布时间】:2013-09-17 15:34:34
【问题描述】:
我正在尝试从 libgdx 中的渲染方法启动 Intent,但出现“无法在未调用 Looper.prepare() 的线程内创建处理程序”错误。
我已经从这里实现了接口http://code.google.com/p/libgdx-users/wiki/IntegratingAndroidNativeUiElements3TierProjectSetup
我使用了 Toast 实现,效果还不错。
这是我的 Android 实现
@Override
public void launchPlayerRoom() {
Intent intent = new Intent(appContext, RoomViewActivity.class);
intent.putExtras(selectPlayerRoom());
startActivity(intent);
}
并从 Libgdx 渲染调用
if (health_amount <= 0){
actionResolver.launchPlayerRoom();
}
Intent 需要从渲染中调用,因为它取决于渲染中递减的值。 我知道问题是从渲染线程调用 UI 线程(我认为!),但我不知道如何解决它。 我已经尝试过这篇帖子Can't create handler inside thread that has not called Looper.prepare()
@Override
public void launchPlayerRoom() {
final Intent intent = new Intent(appContext, RoomViewActivity.class);
intent.putExtras(selectPlayerRoom());
runOnUiThread(new Runnable() {
@Override
public void run() {
startActivity(intent);
}
});
但这没什么区别。
任何帮助将不胜感激。
【问题讨论】:
标签: java android android-intent libgdx