5

我正在使用标志FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TOP回到我以前的“标准”活动。我FLAG_ACTIVITY_SINGLE_TOP用来防止重新创建一个新实例。但我发现标志FLAG_ACTIVITY_SINGLE_TOP被忽略,活动完成并重新创建。

  • 这是我在文档中找到的。FLAG_ACTIVITY_CLEAR_TOP:它表示您可以FLAG_ACTIVITY_SINGLE_TOP在使用时添加FLAG_ACTIVITY_CLEAR_TOP以防止“完成 - 重新创建”。

  • 这是另一个文档。FLAG_ACTIVITY_CLEAR_TOP

    注意:如果指定活动的启动模式是“标准”,它也会从堆栈中删除,并在其位置启动一个新实例以处理传入的意图。这是因为当启动模式为“标准”时,总是会为新意图创建一个新实例。

我误解了第一个文档吗?

4

3 回答 3

5

文档建议您只需要设置 FLAG_ACTIVITY_CLEAR_TOP。但是您实际上必须同时设置两者以防止再次创建活动。

这在我的案例中起到了作用:(主要是我想返回的活动)

  Intent tabIntent = new Intent(this, Main.class);
  tabIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(tabIntent);
于 2011-08-14T19:56:07.137 回答
2

这可能会有所帮助:Android Intent.FLAG_ACTIVITY_SINGLE_TOP AND Intent.FLAG_ACTIVITY_CLEAR_TOP

于 2011-04-11T13:59:58.877 回答
0

检查这个。
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED|Intent.FLAG_ACTIVITY_SINGLE_TOP)

于 2014-01-06T11:15:02.113 回答