0

在我的 android 应用程序中,我编写了以下代码来清除活动堆栈,但此代码不起作用,因此我请求您提供有关此的工作片段。

Intent intent = new Intent(UserProfile.this, Login.class)
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(intent);

感谢您

4

3 回答 3

0

您可以使用 ActivityName.this.finish()。

 Intent intent = new Intent(UserProfile.this, Login.class)
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
  YourActivityName.this.finish();
于 2012-09-07T07:44:58.957 回答
0

如果当前 Activity 是 A 并且你想启动 B Activity,并且 C 和 D 在后台暂停,FLAG_ACTIVITY_CLEAR_TOP 将完成 C 和 D 而不是 A。

有一个变通方法可以让你完成一个活动。创建一个“静态”处理程序,它可以在 A 活动中接收消息时执行完成(),然后在 B 活动开始时使用来自 A 的静态处理程序发送消息。

于 2012-09-07T07:46:49.417 回答
0

在 API 级别 11 中添加了一个新的意图标志:Intent.FLAG_ACTIVITY_CLEAR_TASK试试这个标志。例子 :

Intent intent = new Intent(UserProfile.this, Login.class)
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
finish();
startActivity(intent);
于 2012-09-07T07:42:33.250 回答