How to finish every activity on the stack except the first in Android

后端 未结 2 1065
时光取名叫无心
时光取名叫无心 2020-12-15 05:32

I\'m porting an iPhone app to Android and I can\'t seem to find a means to pop each activity on the stack except the root activity.

In objective-c I would do somethi

相关标签:
2条回答
  • 2020-12-15 05:45

    If you want to start one Activity, say, your homescreen, and remove every other Activity in your application's stack, you can use:

    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Removes other Activities from stack
    startActivity(intent);
    

    If you also want to provide this event in the MainActivity (such as a logo click in the title bar), you can add the FLAG_ACTIVITY_SINGLE_TOP flag as well to make sure it does not add another instance of itself to the stack.

    0 讨论(0)
  • 2020-12-15 05:54

    Look at http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP: you can startActivity on the root activity with this flag, and it will blow away all activities above it. You should read the docs carefully about the intent delivery behavior.

    0 讨论(0)
提交回复
热议问题