2017-11-23 4 views
0

を働いていないアクティビティAで、ユーザは活動Bに行くDから、[アクティビティC [アクティビティD.ユーザーが何らかのアクションを実行する場合、ユーザは、活動E.に戻るスタックと意図フラグは、私のアプリランチャーIN

をリダイレクトする必要があります今、A-> B-> C-> D-> E

活動Eからの場合は、ユーザーを押して[戻る]ボタンと同じように、彼は私がこれをachiveする意思フラグを設定するにはどうすればよいのアクティビティAに移動する必要があります。

+1

読むhttps://developer.android.com /training/implementing-navigation/ancestral.htmlおよびこのhttps:// developer .android.com /デザイン/パターン/ navigation.html – Raghunandan

+1

'仕上げ();'他の活動バックアクティビティAへの直接よりも、あなたがもしそう。今まであなたが意図を切り替えているときB-> Eから –

+1

は、ちょうど戻ってDからいくつかのいずれかを押して、その後も、代わりにOB C.にリダイレクトしている場合のみ、スタック –

答えて

1

あなたが試すことができます。..

@Override 
public void onBackPressed() { 
    // your code. 
    Intent intent = new Intent(this, A.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
} 
0

てみ事前に

おかげで、

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(E.this, A.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
} 
+0

の下にチェック@RaviBhandari 'NEW_TASK'は、ここでは必要ありません。 'CLEAR_TOP'で十分です。 –

0

使用この

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(this, A.class); 
    startActivity(intent); 
    finish(); 
} 
+0

これは 'E'の既存のインスタンスの上に' A'の別のインスタンスを開始します。おそらくOPが望むものではないでしょう。 –

関連する問題