2012-04-07 7 views
1

以前の積み重ねられたアクティビティをどのように殺すか教えてください。私の必要条件はそうです アクティビティから移動させてください A ----> B -----> C --- ---> D -----> E その後の活動スタックは、EDCBA になります私のすべての作業が行われている場合今、私はEでいますし、私はスタックアクティビティを殺すには

startActivity(intent); 

this.finish(); 
を使用して活動 B に移動

このコードはkillだけですEアクティビティが、私は殺したいC Dもあります。 どうすればいいですか?ありがとう。

答えて

6

一つの解決策は、これはあなたが活動に仕上げを呼び出すことができるようにintetに活動コンテキストを渡す必要がありC D E

+0

それがアクティビティBの新しいインスタンスを作成しますか、単に前に古いものをもたらすでしょうか? –

+0

@AndroidKiller http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP –

2

を殺す

Intent b = new Intent(this,B.class); 
b.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(b); 
this.finish(); 

フラグFLAG_ACTIVITY_CLEAR_TOPで活動[B]を呼び出すことです。

もアイデアはintは、あなたが開始されている活動のためのコードであるstartActivityForResult(Intent, int).

を使用して活動を開始することですグー。

finishActivity(int requestCode)に電話すると、指定したコードのアクティビティが強制終了されます。 strings.XMLには、アクティビティのコード(ID)を設定することができます。

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent、int型)

3
Intent intent = new Intent(this, B.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   
    startActivity(intent); 
関連する問題