0

我正在使用这段代码:

Intent i = getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

据我所知i,如果 ACTION_BATTERY_CHANGED 没有发生,则应该为空,但它永远不会为空,并且总是返回相同的数据。当我使用广播接收器时它工作得很好。收到 Intent 后需要删除吗?

4

2 回答 2

3

一旦您注册了粘性意图,就会始终为您提供最后广播的数据。所以这就是你总是接收数据的原因

于 2012-08-13T14:02:06.853 回答
1

粘性 = 粘附结果的属性 = 操作系统所遵循的意图称为粘性意图

通常您使用 sendBroadcast(Intent) 发送广播接收器,但是当您调用此方法 sendStickyBroadcast(Intent) 时,这意味着可以将广播 Intent 指定为粘性,在这种情况下,它将在发送后由系统保留。但默认情况下 Intent.ACTION_BATTERY_CHANGED 意图是粘性的。

在此处阅读完整的帖子http://iphoidtech.com/uncategorized/what-is-stcky-intent/

于 2013-12-01T05:20:54.133 回答