2016-04-09 5 views
0

に意図したとおりに動作していない:finishActivity()シナリオ後のAndroid

私は4つの活動、A、B1、B2、およびC

活動AがでB1を呼び出しました:

public void toB1(View view) 
    { 
     Intent b1 = new Intent(this, B1Activity.class); 
     startActivityForResult(b1, 2); 
    } 

活動B1はB2を呼び出します。

次に、B2の作業が終了したら、Cを呼び出してB1とB2を閉じる必要があります。

public void toC(View view) 
    { 
     Intent c = new Intent(this, CActivity.class); 
     finish(); 
     finishActivity(2); 
     startActivity(c); 
    } 

しかし、Cであることと、リターンキーをクリックすると、今、私が代わりにA.

のB1に向けます。しかしB1が終了しなければならない、私のコードであり誤りであるか、私は誤解しませんstartActivityForResultのコンセプト私はそれはあなたがSingletonを作成する必要があり、そのために下記をご覧解決

+0

下記の内容を確認してください。 –

答えて

1

B1Activity.java

public static B1Activity instance = null; //declare it global 

と意図をこのように起動します。

public void onClick(View v) { 
       Intent b2 = new Intent(B1Activity.this, B2Activity.class); 
       startActivity(b2); 
      } 

と、このコードを使用B2Activity.javaで今をこの方法

@Override 
    public void finish() { 
     super.finish(); 
     instance = null; 
    } 

を作成します。

public void onClick(View v) { 

       Intent c = new Intent(B2Activity.this, CActivity.class); 
       if(B1Activity.instance != null){ 
        B1Activity.instance.finish(); 
       } 
       B2Activity.this.finish(); 
       c.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(c); 
      } 
+0

@DividedByZero私の答えを見て、私に教えてください。 –