0

私のアプリには 3 つのアクティビティ A、B、C があります

古典的な方法は次のとおりです: A から B へ A (startActivityForResult(intent) から C (startActivity(intent)) へ)

C では、A (startActivity(intent)) に戻ることができますが、C に戻ると (常に A > B > A > C と同じ方法で)、変数の 1 つは終了時の値のままです。前回のアクティビティC。

実はたくさんの状態が記憶されているのですが、全部クリアしたいです

変数は、0 に初期化され、アクティビティ中にインクリメントされる整数です。ただし、最後の値が保持されるため、クラッシュが発生します。インテントで A に行く前に彼の値を 0 にすることはできますが、これは最善の方法ではないと思います。

終了する前に C をクリアするにはどうすればよいですか?

私の英語がとても下手ですみません、私の問題を説明するのはとても難しいです...

ご協力いただきありがとうございます

4

1 に答える 1

0

アクティビティ C で、onNewIntent() メソッドをオーバーライドし、それを使用して変数を再初期化します。onNewIntent() メソッドは、アプリの場合と同様に、アクティビティの既存のインスタンスが新しいインテントによってフォアグラウンドに移動するたびに呼び出されます。

編集:これを機能させるには、アクティビティ C を singleTop アクティビティにする必要がある場合があります。

于 2012-12-13T22:27:01.557 に答える