私は月着陸船の例をいじってみましたが、アバウトスクリーンを実装しようとしたときに問題が発生しました。(onCreateOptionsMenuの)メニュー項目の1つを「about」オプションに変更しました。このオプションを選択すると、新しいアクティビティが開始され、バージョン情報画面が表示されます。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_ABOUT:
startActivity(new Intent(this, About.class));
return true;
//Other cases
}
return false;
}
これは完全に機能し、フォーカスは新しいアクティビティに移動します。ただし、電話を押してゲームに戻ると、プログラムがクラッシュします。このエラーが発生します:
Thread [<3> main] (Suspended (exception IllegalThreadStateException))
LunarView(SurfaceView).updateWindow(boolean) line: 465
LunarView(SurfaceView).onWindowVisibilityChanged(int) line: 189
LunarView(View).dispatchWindowVisibilityChanged(int) line: 3782
FrameLayout(ViewGroup).dispatchWindowVisibilityChanged(int) line: 704
FrameLayout(ViewGroup).dispatchWindowVisibilityChanged(int) line: 704
PhoneWindow$DecorView(ViewGroup).dispatchWindowVisibilityChanged(int) line: 704
ViewRoot.performTraversals() line: 710
ViewRoot.handleMessage(Message) line: 1650
ViewRoot(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4595
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 860
ZygoteInit.main(String[]) line: 618
NativeStart.main(String[]) line: not available [native method]
誰かが私が何が起こっているのか理解するのを手伝ってもらえますか?他の何かからゲーム画面に戻ろうとすると、同じ問題が発生します(設定アクティビティ、ヘルプアクティビティ、またはホーム画面のいずれからでも)。ありがとう