- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道未决 Intent 的概念,但标志令人困惑。
连android文档都很难看懂
有人可以通过示例提供未决 Intent 标志的解释,特别是 FLAG_ONE_SHOT
和 FLAG_NO_CREATE
吗?
最佳答案
PendingIntent
由 Android 框架管理。当您调用其中一个 PendingIntent.getXXX()
方法时,框架会尝试查找与您传递给 getXXX()< 的参数相匹配的现有
方法。如果它找到一个匹配的 PendingIntent
/PendingIntent
,它就会将其返回给调用者。如果它没有找到匹配的 PendingIntent
,它将(通常)创建一个新的 PendingIntent
并将其返回给调用者。您可以使用标志更改此标准行为:
FLAG_NO_CREATE
用于获取现有的 PendingIntent
。如果存在匹配的 PendingIntent
,它将返回给调用者。如果不存在匹配的 PendingIntent
,则什么也不会发生。框架不会创建新的 PendingIntent
并且该方法会向调用方返回 null
。您可以使用此方法来确定特定的 PendingIntent
是否存在。您还可以使用此方法获取现有的 PendingIntent
,以便您可以取消它。
FLAG_ONE_SHOT
很奇怪。根据文档,此标志应导致 PendingIntent
在使用(发送)后被删除。但是,此标志还有其他副作用。例如,如果您使用此标志创建一个 PendingIntent
,然后尝试通过调用 PendingIntent.getXXX( )
和 FLAG_NO_CREATE
,框架将始终返回 null
。出于这个原因,我从不使用它,我也建议永远不要使用它。
FLAG_CANCEL_CURRENT
用于删除现有的 PendingIntent
并创建一个新的。该框架首先尝试找到匹配的 PendingIntent
。如果它找到一个,它会取消(删除)这个 PendingIntent
。这意味着持有此 PendingIntent
的任何应用程序将无法触发(发送)它。然后,框架使用提供的参数创建一个新的 PendingIntent
并将其返回给调用者。
FLAG_UPDATE_CURRENT
用于更新现有的 PendingIntent
。该框架首先尝试找到匹配的 PendingIntent
。如果找到一个,则现有 PendingIntent
中的“extras”将被提供的 Intent
参数中的“extras”覆盖。如果未找到匹配的 PendingIntent
,则会使用提供的参数创建一个新的。找到的(或新创建的)PendingIntent
返回给调用者。
注意:有关 Android 框架如何尝试找到“匹配的”PendingIntent
的信息,请参阅此答案:https://stackoverflow.com/a/29590084/769265
关于android - 未决 Intent 中的所有标志是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67398727/
我知道未决 Intent 的概念,但标志令人困惑。 连android文档都很难看懂 有人可以通过示例提供未决 Intent 标志的解释,特别是 FLAG_ONE_SHOT 和 FLAG_NO_CREA
试图显示来自 json 的数据。 当我在控制台上运行我的函数时,它显示: Promise {} 和 [[PromiseState]]:“已完成” 但实际上并没有返回任何东西。 getJobs = as
我的代码是这样的,点击按钮我执行 Calendar calendar = Calendar.getInstance(); calendar.setTimeInMil
function f () { return new Promise(function (resolve, reject) { resolve(4); }) } fun
我有两个 Activity A 和 B。A 在应用程序启动时启动。我有一个从 A 启动的服务。 这是我在 Activity A 中的代码。 Button btnStart = (Button) fin
我正在开发一个应用程序,我想在其中设置自定义闹钟。但是在设置闹钟时间后没有任何反应。我正在分享我的代码。如果我的代码中缺少某些内容,请帮助和指导我。 在我的 MainActivity.java 中
我正在使用 fetch 来获取数据,但它一直将 promise 返回为待处理。我看过很多关于这个问题的帖子,并尝试了所有的可能性,但没有解决我的问题。我想知道为什么 fetch 简要地返回 promi
你好,我有以下在我的应用程序中显示通知的功能,但是我突然开始遇到一个问题,当我单击通知时它不会将我带到我在 .setContentIntent() 中指定的 Activity ,这是我的代码: @Ta
我正在创建一个数据处理程序,作为该过程的一部分,我需要下载一个文件,然后作为处理程序的一部分进行解析和使用。 我将对文件的请求包装在一个 promise 中,并从其他方法异步调用该方法 我已经包含了来
我想做的是通过intent传递数据, >创建者 intent = new Intent(this, AlarmReceiverActivity.class); intent.putExtra("id"
我正在使用 PingService.java 的代码 https://github.com/android/platform_development/blob/master/samples/train
我需要在用户靠近给定地点时通知他。我为此使用地理围栏 API。当我使用模拟位置在 Android 模拟器上测试应用程序时,一切正常。与模拟位置的真实设备相同。但是当我走路并且我的手机处于深度 slee
我有一个显示随机数的简单小部件。点击时它会刷新并显示另一个随机数。这是 AppWidgetProvider 的 onUpdate 方法的代码 public void onUpdate(Context
PendingIntent 中的一个新 PendingIntent 字段是 FLAG_IMMUTABLE。 在31中,必须指定MUTABLE或IMMUTABLE,否则不能创建PendingIntent
我是一名优秀的程序员,十分优秀!