0

kullanarak tüm prevoius zamanları için çalıyor Alarmı Alarm Yöneticisi kullanarak ayarlıyorum ve Alarmı SQlite Database'den Toplayarak Değerleri Ayarla'yı ayarlıyorum. Alarm gelecekteki Alarmlar için iyi çalışıyor ancak Sorun Alarmı Etkinleştirdiğimde Fonksiyon Çağrılıyor, Alarm Tüm Önceki Zamanlar için çalıyor. Bu sorunu nasıl çözmeliyim? Burada geçmişte meydana alarmları zamanlama Görünüşe My Alarm FonksiyonuAlarm, AlarmManager

 void Alaramset() 
{ 
    Cursor cursor=mydb.getAllData(); 



    if (cursor.moveToFirst()) 
    { 
     do{ 
      String alarm1 = cursor.getString  (cursor.getColumnIndex(DBHelper.ALARM_COLUMN_REMINDER1)); 
      int id = Integer.parseInt(cursor.getString(cursor.getColumnIndex(DBHelper.ALARM_COLUMN_ID))); 
       int minute=Integer.parseInt  (alarm1.substring(3, 5)); 
       int hr=Integer.parseInt(alarm1.substring(0, 2)); 
    Intent myIntent = new Intent(getActivity(), MyAlaramService.class); 
    myIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
    PendingIntent pendingIntent = PendingIntent.getService(getActivity(), id, myIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    AlarmManager alarmManager = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE); 
     //  Toast.makeText(getActivity(), ""+minute+" : "+hr, 300).show(); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.set(Calendar.HOUR_OF_DAY, hr); 
     calendar.set(Calendar.MINUTE, minute); 
     calendar.set(Calendar.SECOND, 0); 
     alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
     } 
     while (cursor.moveToNext()); 
    } 
} 

cevap

0

olduğunu. Geçmişte planlanan herhangi bir alarm hemen tetiklenecektir. Basit bir çözüm, bir sonraki gün için geçmiş alarmları planlamak olabilir.

Calendar now = Calendar.getInstance(); 
now.setTimeInMillis(System.currentTimeMillis()); 
if (calendar.before(now) { 
    // alarm has already happened. schedule it for tomorrow 
    calendar.add(Calendar.Date, 1); 
} 
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
+0

Teşekkürler Bu sorunumu çözdü –

İlgili konular