我正在将 iPhone 应用程序移植到 Android,但我似乎找不到一种方法来弹出堆栈上的每个活动,除了根活动。
在objective-c中,我会做类似下面的事情
[navController popToRootViewControllerAnimated:YES];
任何人都知道我是否可以在某些操作后有效地在每个活动上调用“finish()”?
我正在将 iPhone 应用程序移植到 Android,但我似乎找不到一种方法来弹出堆栈上的每个活动,除了根活动。
在objective-c中,我会做类似下面的事情
[navController popToRootViewControllerAnimated:YES];
任何人都知道我是否可以在某些操作后有效地在每个活动上调用“finish()”?
如果您想启动一个 Activity,例如您的主屏幕,并删除应用程序堆栈中的所有其他 Activity,您可以使用:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Removes other Activities from stack
startActivity(intent);
如果您还想在 MainActivity 中提供此事件(例如标题栏中的徽标单击),您也可以添加FLAG_ACTIVITY_SINGLE_TOP
标志以确保它不会将自身的另一个实例添加到堆栈中。
查看http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP:您可以使用此标志在根活动上启动活动,它会吹走它上面的所有活动。您应该仔细阅读有关意图传递行为的文档。