2011-09-20 124 views
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"); 
     } 

を?:です。

+0

の内部で最後の引数としてPendingIntent.FLAG_ONE_SHOTを渡してみては? –

答えて

4

複数のタイマーを開始するのは奇妙です。これを解決万が一PendingIntent.getBroadcast

関連する問題