libgdx の render メソッドから 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 は render でデクリメントされる値に依存するため、render から呼び出す必要があります。問題がレンダー スレッドから UI スレッドを呼び出していることは理解していますが (私はそう思います!)、それを解決する方法がわかりません。この投稿から試しました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);
}
});
しかし、これは違いはありません。
どんな助けでも大歓迎です。