2

私が次のものを持っている場合

親アクティビティ > アクティビティ 1 > アクティビティ 2 > アクティビティ 3

戻るボタンを押すと、親アクティビティ > アクティビティ 1 > アクティビティ 2 に戻ります。

もう一度押すと、親アクティビティ > アクティビティ 1 に移動します。

アクティビティ 3 自体からアクティビティ 1、2、および 3 をプログラムで終了できる方法はありますか。

IOS には popToRootViewControllerAnimated という関数があり、これは Android で必要な概念のタイプです。

ありがとう

4

4 に答える 4

1

で子アクティビティを起動しstartActivityForResult()、次に in onActivityResult()callで起動しますfinish()。これにより、親アクティビティに戻ります。

または、アクティビティ 3 から親アクティビティFLAG_ACTIVITY_CLEAR_TOPを呼び出すときに、インテント フラグを使用することもできます。startActivity()

于 2012-12-17T18:20:07.230 に答える
1

最後のアクティビティから startActivity を呼び出すときに、Flag Intent.FLAG_ACTIVITY_CLEAR_TOP を追加します。アクティビティスタックをクリアします

于 2012-12-17T18:22:21.263 に答える
0

おそらく、このアルゴリズムは役に立つでしょう。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch(keyCode)
    {
    case KeyEvent.KEYCODE_BACK:
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            //here you'll check if activity3 alive then join
            //else if activity2 alive then join
            //else if activity1 alive then join
            //else finish(); 
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
于 2012-12-17T19:02:22.823 に答える
0

activity3 から来た場合は activity2 の onResume() をチェックインし、そうである場合は finish() を呼び出します。アクティビティ 1 についても同様です。

于 2012-12-17T18:41:25.960 に答える