获取上一次即时广播的时间戳?

问题描述 投票:0回答:1

阅读即时广播时,可以查明广播是多久前发送的?

粘性广播的优点是可以晚到聚会但仍可以读取数据,但是知道发送时间是很高兴的。

具体来说,我正在尝试将其用于电池温度,但这在第一次阅读粘性广播时在各种情况下都可能有用(第二次以后可以在发送时直接接收,所以这个问题解决了。

我彻底搜索了文档和SO,但找不到任何地方要问或回答的问题。这可能意味着不可能,但是无论如何我都在尝试。会是一个整洁的功能-还是没有?

android broadcastreceiver android-broadcast sticky-broadcast
1个回答
0
投票

使用粘性广播的最佳示例如下:

Intent intent = new Intent("some.custom.action");
intent.putExtra("some_boolean", true);
sendStickyBroadcast(intent);

如果您正在冻结的活动中收听此广播(onPause),则可能会错过实际事件。这使您可以在广播被广播之后检查广播(onResume)。

如果您要使用它作为电池温度,是否曾尝试使用ACTION_BATTERY_CHANGED

基本上,粘性广播的值是上次广播的值,当前保存在粘性缓存中。这不是当前接收到的广播的值。我想您可以说它就像可以随时访问的浏览器cookie。我建议您检出isInitialStickyBroadcast()以在接收器的onReceive中使用。现在,根据粘性广播方法here的文档,粘性广播已被弃用。

此方法在API级别21中已弃用。不应使用粘性广播。它们不提供安全性(任何人都可以访问它们),不提供保护(任何人都可以对其进行修改)以及许多其他问题。推荐的模式>是使用非粘性广播来报告已发生更改,另外一种>可以在需要时让应用检索当前值的机制。

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.