Android アプリを Cyanogen 9.1 (Android 4.0.4) でテストしていると、奇妙な動作が見つかりました。
私のアプリには、android.net.conn.CONNECTIVITY_CHANGE をリッスンする BroadcastReceiver が含まれています。Android のドキュメントによると、このインテントはスティッキーではありません。
ただし、アプリが CM9.1 で起動すると、常に CONNECTIVITY_CHANGE インテントを受け取ります。
実際、このインテントはシステムによってスティッキーとしてリストされます。
>adb shell dumpsys activity
Sticky broadcasts:
...
* Sticky action android.net.conn.CONNECTIVITY_CHANGE
...
私がテストした他の Android バージョン (たとえば、私の NX4 の 4.2.1 ストック Android) では、インテントはスティッキーではなく、起動時に受信されません。これは正しい動作です。
これは Cyanogenmod ROM のバグですか? スティッキー インテントを受け取ったときに、それが古いものであり、実際の最近のイベントに起因するものではないことを知る方法はありますか?
ありがとうございました