完成除一个以外的所有活动

时间:2012-08-25 12:08:11

标签: android android-activity activity-finish

当我使用这种方法时,我会回到登录页面,但我仍然可以点击返回按钮,它会将我返回到上一个活动。为什么不关闭其他活动?

public void restartApplication() {
        Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);   
    }

有没有办法完成除登录活动以外的所有活动?或重新启动整个应用程序?

3 个答案:

答案 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);