【问题标题】:Finish all activities except one完成除一项以外的所有活动
【发布时间】:2025-12-03 21:50:01
【问题描述】:
当我使用此方法时,我会返回登录页面,但我仍然可以单击返回按钮,它会将我返回到上一个活动。为什么它不关闭其他活动?
public void restartApplication() {
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
有没有办法完成除了登录活动之外的所有活动?还是重启整个应用?
【问题讨论】:
标签:
android
android-activity
activity-finish
【解决方案1】:
我认为由于包管理器,活动开始于新的历史堆栈。
尝试使用活动名称而不是从包管理器获取。
例如。
Intent i = new Intent(getApplicationContext(), LoginActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
【解决方案2】:
尝试使用这个 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);代替 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = new Intent(getApplicationContext(),
yourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
【解决方案3】:
尝试将finish(); 放在startActivity(i); 之后。