Activity#finish()を呼んでも、それを呼び出したActivityしか終了しないので、Backキーと同じことになる。
子Activityから親Activityが簡単に取得できないようで、やり方が見つかりませんでした。
で、どうしたかというと、Activityの呼び出しにActivity#startActivity()ではなく、Activity#startActivityForResult()で子Activityの終了コードを見ることにしました。
子の終了コードが「終了」なら、自分もfinish()する。
さらに、自分に親がいることも考えて、自分の終了コードを「終了」にする。
つまり、以下のようなコード。
public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_CLOSE) { setResult(RESULT_CLOSE); finish(); } }
これを全部のActivityに仕込んでおけばOK。
これを仕込んだBaseActivityを作ろうかとも思ったけど、TabActivityを継承してるやつとかもあって、そういった拡張Activityごとに用意するのが面倒だったので、とりあえず今回は見送りました。
0 件のコメント:
コメントを投稿