2016-12-01 11 views
0

私は初期アクティビティがOであり、アクティビティAが1つあります。アクティビティA1,A2,A3に移動し、それぞれのフォームに記入することができます。私はA3で午前間、私はバックボタンを押して、もう一度Oに行きたいAndroidでアクティビティインスタンスを管理する方法

O> A> A1> A> A2> A> A3

私:だから私はこの道をたどりますA(のは、私は、彼らがスタック内に存在していないだろうA1,A2,A3のマニフェストにfinish()またはno historyを使用すると仮定しましょう)

どのように私は、最後の(Aがインスタンスを1つだけ持っていることを宣言することができるのすべてのインスタンスから渡す必要があります1つ)をスタックに入れます私は再びOに行きますか?

+0

アクティビティ「A」が表示されるたびに新しいインスタンスが表示されますか?なぜ、単にアクティビティAのインスタンスを1つ持ち、他のアクティビティからそれぞれ戻ってくるのはなぜですか? – Bryan

+0

これはデフォルト動作です。私はそれを単一のインスタンスにすることはできますか?それは質問です... –

+0

なぜあなたはAの複数のインスタンスを作成する必要がありますか?ログアウト機能を実装していますか? – Dilip

答えて

3
@Override 
public void onBackPressed() { 
    Intent intent = new Intent(this,O.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
} 
+2

この回答は良いですが、コードが何をしているのかを説明して、他の/新しいユーザーがどのように動作するかを理解できるようにしてください。ほとんどのAndroid初心者は、 'Activity'と' Task'スタックの理解に問題があります。 – Bonatti

0

変更singleTopに活動AlaunchMode。それはドキュメントで述べたように:

アクティビティのインスタンスが既にターゲット タスクの上部に存在する場合、システムルート への呼び出しではなく、そのonNewIntent()メソッドを介してそのインスタンスに意図 アクティビティの新しいインスタンスを作成するよりも活動Aのインスタンスに戻ります今

、代わりにA -> A1 -> Aから行くの、あなただけのfinish()活動A1(またはup buttonを使用する)ことができます。

関連する問題