2017-01-11 7 views
0

現在のアクティビティ(D)から、特定のアクティビティ(X)を超えるすべてのアクティビティを終了する必要があります。私は2つのケースを処理する必要があります。A - X特定のアクティビティの上にあるすべてのアクティビティを終了します(特定のアクティビティがスタックしている場合のみ)

  1. A - X - C - D
  2. A - B - C - D

あなたが第一の状況Xで見ることができるようにのようになりますスタックを殺害した後のでスタックにあります。

第2の状況では、Xはスタックされていないので、スタックは元のままです。

私がこれまでに試したのは、Dで、私はLocalBroadcastManagerを "どこにでも"送ります。私はLocalBroadcastにXで登録します。 Xがスタック上にあるのであれば、それはLocalBroadcastを受けるだろうと私は経由して、「すべて自分上記活動」殺そう:

private BroadcastReceiver broadcast = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Intent intents = new Intent(XActivity.this, XActivity.class); 
      intents.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
     } 
    }; 

しかし、これはで失敗します。

android.content.ActivityNotFoundException: No Activity found to handle Intent 
+0

母、私の目のおかげです。助けられたら同意してください:) – W4R10CK

答えて

2

を変更し、あなたのintentintentsへ:

private BroadcastReceiver broadcast = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent intents = new Intent(XActivity.this, XActivity.class); 
     intents.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intents); //<-- here 
    } 
}; 
+0

whoa!私はそれを見つけられないだろう。私の目は年を取っています。どうも。 –

関連する問題