如何完成堆栈中的每个活动,除了Android中的第一个

Tor*_*ups 18 android activity-finish

我正在将一个iPhone应用程序移植到Android上,除了root活动之外,我似乎无法找到在堆栈上弹出每个活动的方法.

在objective-c中,我会做类似下面的事情

[navController popToRootViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

有人知道我是否可以在采取某些行动后对每项活动进行有效的"完成()"调用?

Gle*_*ger 34

如果你想启动一个Activity,比如你的主屏幕,并删除应用程序堆栈中的所有其他Activity,你可以使用:

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

如果您还想在MainActivity中提供此事件(例如标题栏中的徽标单击),您也可以添加该FLAG_ACTIVITY_SINGLE_TOP标志以确保它不会向堆栈添加其自身的另一个实例.

  • 它重新创建了第一个活动,我的意思是它调用了`MainActivity`的`onCreate()` (3认同)