0

3 つのアクティビティ A、B、および C があると仮定します。アプリケーションの最初の起動時に、A を介して B が作成されます。しかし、アプリケーションのその後の使用では、アプリケーションを B から起動して C に移動する必要があります。どうすればよいですか?それ?

(たとえば、アクティビティ A は作成されたボタンの数を要求し、B では、C によって実行されるさらなるアクティビティのために非常に多くのボタンが作成されます。A は初期化時にのみ使用し、アプリのそれ以降の使用では使用しないでください。ただし、作成されたアクティビティの状態はby A in B は同じままでなければなりません)

参考文献やサンプルコードが役立つ場合があります
よろしくお願いします。

4

3 に答える 3

1

アクティビティ A からいつでもアプリケーションを開始できます。A で、初めてかどうかを確認します。初めての場合は、いくつかの初期化操作を実行して B を開始します。それ以外の場合は、B を直接開始します。 isFirstTime フラグを設定に保存できます。

于 2012-04-10T12:43:57.587 に答える
1

あなたのA、B、Cクラスでこのコードを使用してください

 public boolean onKeyDown(int keyCode, KeyEvent event)
     {
         if(keyCode == KeyEvent.KEYCODE_BACK){  
            finish();
            }
            return super.onKeyDown(keyCode, event);
     }
于 2012-04-10T12:59:07.693 に答える
0

これはいくつかの方法で実現できますが、確実に実行できる方法は多くありません。使用する基本的なアプローチは、どこかに格納されたフラグ変数と一緒にスプラッシュ スクリーンを使用することです。コメントの 1 つが言及しているように、Activity A に入るときはいつでも、SharedPreferences でフラグを設定できます。将来このアクティビティに戻るときは、フラグが設定されているかどうかを確認してから、B からアクティビティ C を開始するための新しいインテントを作成することができます。フラグをチェックする A でも同様のことができます。あなたはアプリに行くことを選択します。1 つのトリッキーな状況は、フラグをリセットする方法です。ライフサイクルについて考えた後、onStop() のフラグを保守的にリセットすることもできますが、これは良い考えかもしれませんし、そうでないかもしれません。また、ブート完了ハンドラーを登録してから、そこでフラグをリセットすることもできます。

于 2012-04-10T12:48:57.603 に答える