7
私は起動時に通知を受けるboot_completed受信機を持っています。ブロードキャスト受信機onReceive()が複数回呼び出される
<receiver android:name=".BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
しかし、複数回呼び出されるようです。私はタイマーを開始し、次に複数のタイマーにつながるサービスを開始し、サービスがリセットされて再び実行されます。
このようなタイマーを作成する。これは、繰り返しタイマーではありません誰がブートアップ放送受信機や素晴らしいだろう、実行中のサービスにEclipseのデバッガをアタッチする方法を知っているならば、それは、サイドノートとして
private void setAlarm(Context context, long interval) {
try {
AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(RespondAlarmReceiver.ACTION_RESPOND_SMS);
intent.putExtra("isChecking", true);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
int alarmType = AlarmManager.ELAPSED_REALTIME_WAKEUP;
long triggerAtTime = SystemClock.elapsedRealtime() + interval; //interval is 60,000
alarms.set(alarmType, triggerAtTime, alarmIntent);
}
catch (Exception e) {
Log.e(DEBUG_TAG, "Unable to set alarm");
}
を?:です。
の内部で最後の引数として
PendingIntent.FLAG_ONE_SHOT
を渡してみては? –