android - 不能在一个 Intent 中同时设置 FLAG_ACTIVITY_SINGLE_TOP 和 FLAG_ACTIVITY_CLEAR_TOP 吗?

标签 android android-intent activity-stack

我正在使用标志 FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TOP 返回我之前的“标准” Activity 。我使用 FLAG_ACTIVITY_SINGLE_TOP 来防止重新创建新实例。但我发现标志 FLAG_ACTIVITY_SINGLE_TOP 被忽略, Activity 完成并重新创建。

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

  • 这是另一个文档。 FLAG_ACTIVITY_CLEAR_TOP :

    Note: If the launch mode of the designated activity is "standard", it too is removed from the stack and a new instance is launched in its place to handle the incoming intent. That's because a new instance is always created for a new intent when the launch mode is "standard".

我误解了第一个文档吗?

最佳答案

文档表明您只需设置 FLAG_ACTIVITY_CLEAR_TOP。但实际上您必须同时设置两者以防止再次创建 Activity 。

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

  Intent tabIntent = new Intent(this, Main.class);
  tabIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(tabIntent);

关于android - 不能在一个 Intent 中同时设置 FLAG_ACTIVITY_SINGLE_TOP 和 FLAG_ACTIVITY_CLEAR_TOP 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622365/

相关文章:

Android 运行时权限完成调用 Activity

Android SQLiteDatabase查询排序顺序

Android SDK 谷歌地图不在 "production mode"中显示 map

android - 库必须使用完全相同的版本规范(混合版本会导致运行时崩溃)。发现版本 28.0.0-alpha1、26.1.0

java - 在全屏中显示选定的网格图像,其代码需要在 MainActivity 类中,如下所示

Android 在按下主页按钮时恢复 UI 状态?

android - 来自 ImageButton 的图像未显示在 Android Studio 的模拟器上

android - 来自 sd 卡的图像未加载到 webview 中

java - 静态与非静态 Activity Intent 调用方法

android - 将浏览器作为 Intent 打开,但不要将其保留在 Activity 堆栈中