我正在尝试从 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);
}
});
但这没有什么区别。
非常感激任何的帮助。