Android 安卓cyanogenmod 9.1:x27;别粘乎乎的

Android 安卓cyanogenmod 9.1:x27;别粘乎乎的,android,android-intent,broadcastreceiver,cyanogenmod,Android,Android Intent,Broadcastreceiver,Cyanogenmod,我在Cyanogen 9.1(Android 4.0.4)上测试我的Android应用程序,发现了一个奇怪的行为 我的应用程序包含一个BroadcastReceiver,可以监听android.net.conn.CONNECTIVITY\u更改。 根据这个意图是不粘的 但是,当应用程序在CM9.1上启动时,它始终会收到连接更改意图 事实上,系统将此意图列为粘性: >adb shell dumpsys activity Sticky broadcasts: ... * Sticky ac

我在Cyanogen 9.1(Android 4.0.4)上测试我的Android应用程序,发现了一个奇怪的行为

我的应用程序包含一个BroadcastReceiver,可以监听android.net.conn.CONNECTIVITY\u更改。 根据这个意图是不粘的

但是,当应用程序在CM9.1上启动时,它始终会收到连接更改意图

事实上,系统将此意图列为粘性:

>adb shell dumpsys activity
 Sticky broadcasts:
...
 * Sticky action android.net.conn.CONNECTIVITY_CHANGE
...
在我测试过的其他Android版本(例如NX4上的4.2.1股票Android)上,其目的不是粘性的,在启动时也不会收到,这是正确的行为

这是Cyanogenmod ROM中的错误吗? 当收到粘性意图时,是否有办法知道这是一个旧的意图,而不是由实际的最近事件引起的?

多谢各位

这是氰化物ROM中的一个错误吗

你最好在CM支持板上问这个问题

当接收到一个粘性意图时,有没有办法知道这是一个旧的意图,而不是由实际的最近事件引起的

您可以使用
null
BroadcastReceiver
IntentFilter
调用
registerReceiver()
,以获得所需的
Intent
结构(例如,
android.net.conn.CONNECTIVITY\u CHANGE
操作)。如果返回值为
null
,则广播没有粘性,因此您的行为正常


但是,没有好的方法来确定粘性
Intent
的年代,除非该特定
Intent
碰巧有某种额外的时间戳。

感谢您的提示。但是,如果我为连接更改意图向null BroadcastReceiver注册一个接收器,它总是返回一个意图,从不为null。换句话说,这个技巧可以告诉我,我在一个有bug的操作系统上(因为意图不应该是粘性的),但我仍然无法区分旧的粘性意图和最近的意图。。。