別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();
②から指定のメソッドを呼んであげれば良いだけですね。
インスタンスの登録を忘れずに行うことで正常に動作します。
以上