android 中的 PendingIntent.FLAG_UPDATE_CURRENT 和 0 有什么不同?

Hel*_*oCW 5 android

android 中的 PendingIntent.FLAG_UPDATE_CURRENT 和 0 有什么不同?

var aa=  PendingIntent.getService(mContext, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT)

var bb=  PendingIntent.getService(mContext, 0, myIntent, 0)
Run Code Online (Sandbox Code Playgroud)

Sag*_*gar 5

环境 PendingIntent.FLAG_UPDATE_CURRENT

基于以下文档PendingIntent.FLAG_UPDATE_CURRENT

指示如果描述的 PendingIntent 已经存在,则保留它,但用这个新 Intent 中的内容替换它的额外数据。

用法

如果您正在创建仅附加内容发生变化的意图,并且不关心收到您之前的 PendingIntent 的任何实体将能够使用您的新附加内容启动它,即使它们没有明确提供给它,这可以使用。

将值设置为 0

不设置标志,即 0 作为标志参数,PendingIntent如果存在匹配提供的参数,则返回现有标志。如果没有现有匹配项,PendingIntent则将创建并返回一个新匹配项


Ski*_*ᴉʞS 1

如果您将 0 作为标志传递,则表示您没有向该标志传递任何标志PendingIntent

至少在数量上是有区别的。

看看电流常数是多少

public static final int FLAG_UPDATE_CURRENT = 134217728;
Run Code Online (Sandbox Code Playgroud)

来自文档FLAG_UPDATE_CURRENT是:

指示如果所描述的 PendingIntent 已经存在,则保留它但用这个新 Intent 中的内容替换其额外数据的标志。用于 getActivity(Context, int, Intent, int)、getBroadcast(Context, int, Intent, int) 和 getService(Context, int, Intent, int)。

如果您正在创建仅额外内容发生变化的意图,并且不关心收到您之前的 PendingIntent 的任何实体将能够使用新的额外内容启动它,即使它们没有明确提供给它,则可以使用此方法。

有关此问题的更多信息,请查看此答案