別Activityから指定のActivityをfinishしたい

今回は別Activityから指定のActivityをfinishする方法をまとめます。

事例としては、startActivityForResultでActivityを起動させた場合
起動されたActivityで処理が完結し、元に戻らないパターンです。

そういった時に、残っているActivityをfinishする必要があります。


説明するために起動側のActivityを①、起動される側のActivityを②とします。


まず、①を自分自身をfinishするメソッドを作成します。

public static void finishActivity() {
 if (sampleActivity != null) {

   // インスタンスがある場合はfinishする.
   sampleActivity.finish();
 }
sampleActivity = null;
}

onCreateでインスタンスを登録しておく必要があります。

 


次に、①をfinishさせたいときは②に以下の実装を追加します。

  SampleActivity.finishActivity();

 

②から指定のメソッドを呼んであげれば良いだけですね。

インスタンスの登録を忘れずに行うことで正常に動作します。


以上