2011-09-20 14 views
7

मेरे पास बूट_कंपूर्ण रिसीवर है जो बूट पर अधिसूचित हो जाता है।ब्रॉडकास्ट रिसीवर ऑन रिसीव() कई बार बुलाया जा रहा है

<receiver android:name=".BootCompletedReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 

लेकिन ऐसा लगता है कि यह कई बार कहा जाता है। मैं एक टाइमर शुरू करता हूं, और फिर एक सेवा, जो कई टाइमर की ओर जाता है, और फिर सेवा रीसेट हो जाती है और फिर से चलाती है।

इस तरह टाइमर बनाना। यह एक दोहराई जाने वाली घड़ी नहीं है, यह

 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

के अंदर कोई मौका आप इस हल करके प्रयास करें? –

उत्तर

4

यह अजीब बात है कि आपको कई टाइमर शुरू हो जाएंगे। पिछले तर्क के रूप में पारित करने PendingIntent.FLAG_ONE_SHOTPendingIntent.getBroadcast

संबंधित मुद्दे