【问题标题】:Android intent parameter FLAG_ACTIVITY_SINGLE_TASK missing?缺少 Android 意图参数 FLAG_ACTIVITY_SINGLE_TASK?
【发布时间】:2017-11-22 21:44:50
【问题描述】:

我刚刚注意到参数 FLAG_ACTIVITY_SINGLE_TASK 在 Android 开发者文档中不再可用:

我只是想这样做:

removeCard.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TASK); startActivity(removeCard);

我已经在 Google 的代码中看到过这样的参数,但 Java 编译器只是告诉我它不存在。

我只能使用此参数启动主要活动,但我必须配置清单文件才能执行此操作:

android:launchMode = "singleTask"

这不适用于应用启动时启动的主要活动以外的活动。

有人知道为什么 Intent 的这个参数会消失吗?

问候, 弗朗茨

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    好吧,环顾四周后,我设法弄清楚没有 FLAG_ACTIVITY_SINGLE_TASK 或 FLAG_ACTIVITY_SINGLE_INSTANCE 之类的东西,甚至也不存在。这是因为您正在寻找只能通过清单中定义的应用程序启动模式定义的值。只有 FLAG_ACTIVITY_SINGLE_TOP 可用作意图标志。因此,如果您想使用 singleTask、singleInstance、singleTop 或标准启动模式中的任何一种,则必须在清单中定义它们:

    <activity
        android:name="com.company.ActivityName"
        android:launchMode="singleTask">
    </activity>
    

    请参阅文档中的 launchMode 部分:http://developer.android.com/guide/topics/manifest/activity-element.html

    【讨论】:

      【解决方案2】:

      android:launchMode = "singleTask" 在正确使用的情况下应该适用于所有活动,并且您确定您指的不是FLAG_ACTIVITY_SINGLE_TASK,它仍然存在并且似乎可以执行您想要的操作。

      public static final int FLAG_ACTIVITY_SINGLE_TOP

      Since: API Level 1 如果设置,则活动不会启动 已经在历史堆栈的顶部运行。

      【讨论】:

      • FLAG_ACTIVITY_SINGLE_TASK 和 FLAG_ACTIVITY_SINGLE_TOP 不一样。我正在尝试将 FLAG_ACTIVITY_SINGLE_TASK 作为参数传递。我不想使用 FLAG_ACTIVITY_SINGLE_TOP。但是这个参数在 Android 文档中已经不存在了。
      • 试试这个:developer.android.com/… 并尝试使用 FLAG_ACTIVITY_SINGLE_TOP。第一个不存在(不再存在?)。
      • @user255607 我不认为谷歌能够在不发布的情况下弃用某些东西,我想它会破坏他们拥有的各种协议。如果你用谷歌搜索这个标志,你的问题(翻译和抓取)占内容的 95%。也许您在发布之前在某些原型代码中看到了它的使用,或者该标志是私有的(即使那样它也可能会出现)。如果你能找到你看到的地方并且它是已发布文档的一部分,谷歌可能会非常感兴趣。
      【解决方案3】:

      不,它没有丢失。来自开发者文档......Using Intent flags

      FLAG_ACTIVITY_NEW_TASK 在新任务中启动活动。如果您现在正在启动的 Activity 的任务已经在运行,则该任务将被带到前台并恢复其最后状态,并且该 Activity 在 onNewIntent() 中接收新意图。 这会产生与上一节中讨论的“singleTask”launchMode 值相同的行为。

      这意味着 FLAG_ACTIVITY_NEW_TASK 和 Singletask 一样

      【讨论】:

      • 你测试过它的行为吗??我发现它的行为与 android 的官方文档中所写的完全相反。
      猜你喜欢
      • 1970-01-01
      • 2021-09-08
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2012-05-08
      • 1970-01-01
      相关资源
      最近更新 更多