5

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

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

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

4

3 回答 3

3

我认为由于包管理器,活动开始于一个新的历史堆栈。

尝试使用活动名称而不是从包管理器中获取。例如。

Intent i = new Intent(getApplicationContext(), LoginActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
于 2012-08-25T12:31:39.640 回答
0

尝试放在finish();后面startActivity(i);

于 2012-08-25T12:24:57.310 回答
0

尝试使用这个 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);
于 2012-08-25T12:31:41.743 回答