0

私は Android 用のゲームを作成していますが、アクティビティやコンテンツ ビューを変更する良い方法が見つかりませんでした。現在、1 つのメイン メニュー アクティビティがあり、そのコンテンツ ビューは を受け取りMotionEvent、それらをカスタム ボタンにディスパッチします。もう1つは、画面を1色でペイントするだけActivityのシンプルなものです。contentViewすべてcontentViewの は同じ基本クラスを持ち、アクティビティ 2 はアクティビティ 1 から派生します。

問題は、アクティビティを変更しようとするとアプリがクラッシュすることです。約 20 秒かかり、アプリが応答していないというエラー メッセージが表示されます。logcat には、メッセージもあります。keyDispatchingTimedOut sending to activity2 以下は、アクティビティ変更のコードです。

public void changeActivity() {
    Log.d("changing", "activity");
    Intent i=new Intent(this, Activity_Level.class);
    startActivity(i);
}

何か案は?

4

4 に答える 4

1

メソッドでアクティビティのコンテキストを使用する必要があります

Intent i=new Intent(Youar_Activity_Name.this, Activity_Level.class);
                    ^^^^^^^^^^^^^^^^^^^^^^

上記のコードを changeActivity() メソッドで使用します。

于 2012-07-30T14:54:50.577 に答える
1

アプリが応答しない場合は、UI スレッドで長い操作を行っていることが原因です。たぶん、この関数を呼び出した後、何か他のことを続けますか?

人々が言っ​​たように、アクティビティが開かれていない場合(onCreateメソッド内のログに書き込むことで確認できます)、マニフェストを確認してください。

いずれにせよ、アクティビティをより適切に制御したい場合は、インテントに使用できるフラグを確認できます。また、Google が推奨するように、フラグメントを使用することもできます (可能な場合)。

于 2012-07-30T14:59:37.407 に答える
0

manifest.xmlすべてのアクティビティをファイルに追加しなかったようです。そこにすべてのアクティビティを追加して、実行してみてください。

于 2012-07-30T14:53:57.550 に答える
0

logcat メッセージが表示されない場合は、AndroidManifest.xml にアクティビティを追加するのを忘れているに違いありません

于 2012-07-30T14:48:23.567 に答える