私は とBroadcastReceiver
を監視android.intent.action.BOOT_COMPLETED
しandroid.intent.action.TIME_SET
ていandroid.intent.action.TIMEZONE_CHANGED
ます。
<receiver android:name="SystemBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
/** そうではありません。以下を参照してください。これらのアクションのいずれかが発生するたびに、レシーバーはアクティビティを開きます。時計の分の部分を変更した場合を除き、すべて正常に機能android.intent.action.TIME_SET
します。これにより、アクティビティが 2 回開始されます。
時計の時間の部分を変更すると、android.intent.action.TIME_SET
一度しかアクティブにならないので、奇妙だと思います。*/ 私のテスト電話は 4.2.1 の Galaxy Nexus です。これは 4.2.1 のシステム バグですか、それとも何か間違ったことをしたのでしょうか?
-----------自分で編集------------ 役に立つかもしれないいくつかのログを次に示します。分、時間、または日付を変更すると、アクティビティが 2 回起動します。
02-01 21:16:11.781: D/SystemClock(9012): Setting time of day to sec=1359724560
02-01 21:16:00.023: V/AlarmClock(8932): AlarmInitReceiver finished
02-01 21:16:00.031: D/SystemClock(9012): Setting time of day to sec=1359724560
なぜシステム設定部分で時刻を 1 回変更しただけなのかわかりませんが、システムは設定時刻を 2 回呼び出します。