无法在一个intent中同时设置FLAG_ACTIVITY_SINGLE_TOP和FLAG_ACTIVITY_CLEAR_TOP?

Der*_*Hsu 5 android activity-stack android-intent

我正在使用旗帜FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TOP回到之前的"标准"活动.我FLAG_ACTIVITY_SINGLE_TOP用来防止重新创建一个新实例.但我发现,该标志FLAG_ACTIVITY_SINGLE_TOP被忽略,活动完成并重新创建.

  • 这是我在docs中找到的内容.FLAG_ACTIVITY_CLEAR_TOP:它表示您可以FLAG_ACTIVITY_SINGLE_TOP在使用时添加FLAG_ACTIVITY_CLEAR_TOP以防止"完成 - 重新创建".

  • 这是另一个文档.FLAG_ACTIVITY_CLEAR_TOP:

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

我误解了第一份文件吗?

Kri*_*ael 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);
Run Code Online (Sandbox Code Playgroud)