Android 挂起的意图中的所有标志是什么

Android 挂起的意图中的所有标志是什么,android,android-pendingintent,Android,Android Pendingintent,我知道未决意图的概念,但这些标志令人困惑 即使是android文档也很难理解 有人能举例说明未决意图标志,特别是FLAG_ONE_SHOT和FLAG_NO_CREATE。pendingent由Android框架管理。调用其中一个pendingent.getXXX()方法时,框架会尝试查找与传递给getXXX()方法的参数匹配的现有pendingent。如果它找到一个匹配的pendingent,它将把它返回给调用者。如果它没有找到匹配的pendingent,它将(通常)创建一个新的pendinge

我知道未决意图的概念,但这些标志令人困惑

即使是android文档也很难理解


有人能举例说明未决意图标志,特别是
FLAG_ONE_SHOT
FLAG_NO_CREATE

pendingent
由Android框架管理。调用其中一个
pendingent.getXXX()
方法时,框架会尝试查找与传递给
getXXX()方法的参数匹配的现有
pendingent
。如果它找到一个匹配的
pendingent
,它将把它返回给调用者。如果它没有找到匹配的
pendingent
,它将(通常)创建一个新的
pendingent
,并将其返回给调用者。您可以使用以下标志更改此标准行为:

  • FLAG\u NO\u CREATE
    用于获取现有的
    pendingent
    。如果存在匹配的
    pendingent
    ,它将返回给调用者。如果不存在匹配的
    pendingent
    ,则不会发生任何事情。框架将不会创建新的
    pendingent
    ,该方法将
    null
    返回给调用方。您可以使用此方法确定是否存在特定的
    pendingent
    。您还可以使用此方法获取现有的
    pendingent
    ,以便取消它

  • FLAG\u ONE\u SHOT
    很奇怪。根据文档,此标志应导致
    pendingent
    在使用(发送)后被删除。然而,这个标志还有其他副作用。例如,如果您使用此标志创建一个
    pendingent
    ,然后尝试通过调用
    pendingent.getXXX()
    (使用
    标志\u NO\u create
    )来获取此
    pendingent
    (或测试它的存在),框架将始终返回
    null
    。因此,我从不使用它,我也建议永远不要使用它

  • FLAG\u CANCEL\u CURRENT
    用于删除现有的
    pendingent
    并创建一个新的。框架首先尝试查找匹配的
    pendingent
    。如果找到一个,它将取消(删除)此
    pendingent
    。这意味着任何持有此
    pendingent
    的应用程序将无法触发(发送)它。然后,框架使用提供的参数创建一个新的
    pendingent
    ,并将其返回给调用者

  • FLAG\u UPDATE\u CURRENT
    用于更新现有的
    pendingent
    。框架首先尝试查找匹配的
    pendingent
    。如果找到一个,现有的
    pendingent
    中的“extras”将被提供的
    Intent
    参数中的“extras”覆盖。如果未找到匹配的
    pendingent
    ,将使用提供的参数创建一个新的。找到的(或新创建的)挂起内容将返回给调用者



注意:有关Android框架如何尝试查找“匹配”PendingEvent的信息,请参见此答案:

此答案没有帮助。我只想在后台运行每个Flag的示例和解释?我不明白你的意思<代码>挂起内容
s不“运行”。他们被派去了。根据由
挂起内容
包装的
意图
,这可能导致启动
活动
,或
广播接收器
,或
服务
。请解释您的要求。在这句话中,
当您调用其中一个pendingent.getXXX()方法时,框架试图找到一个与您传递给getXXX()方法的参数相匹配的现有pendingent,您说
它试图找到一个现有的意图
。我的疑问是,是否会在后台运行一个待定的意图?你说的这句话到底是什么意思?我在这里贴了一条评论,你能回答吗?我看到了你的评论,但也不明白。你引用了一段不在问题中的话。很抱歉