当我使用这种方法时,我会回到登录页面,但我仍然可以点击返回按钮,它会将我返回到上一个活动。为什么不关闭其他活动?
public void restartApplication() {
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
有没有办法完成除登录活动以外的所有活动?或重新启动整个应用程序?
答案 0 :(得分:3)
我认为由于包管理器,活动开始于新的历史堆栈。
尝试使用活动名称,而不是从包管理器获取。 例如
Intent i = new Intent(getApplicationContext(), LoginActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
答案 1 :(得分:0)
尝试将finish();
放在startActivity(i);
之后。
答案 2 :(得分:0)
尝试使用此intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); inplace of intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = new Intent(getApplicationContext(),
yourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);