2013-12-16 4 views
0

Я разрабатываю приложение, которое должно запускать будильник через каждые 5 дней, для чего я использую метод setRepeating, например: сегодня дата 16, поэтому сигнал тревоги должен срабатывать 21, но для целей тестирования , я изменил дату своего устройства с 16 по 17, и внезапно он срабатывает, но он должен начать будильник через 5 дней, я не могу узнать, что я делаю неправильно. Пожалуйста, помогите мне . Заранее спасибо.Повторяющийся сигнал не работает должным образом

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
     long check = 86400000; // no. of millisecond in days 
     int days = Integer.parseInt(strDays); 
     Intent intent = new Intent(getBaseContext(), AlarmReciever.class); 
     intent.putExtra("Item", "Time To Pick Up " + strItemName); 
     intent.putExtra("Id", 1); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(
       getBaseContext(), RQS_1, intent, 0); 
long time =check*2; // for 2 days 
     alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),time,pendingIntent); 

ответ

1

Читайте документацию setRepeating

http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating(int, длинный, длинный, android.app.PendingIntent)

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),time,pendingIntent);

Здесь System.currentTimeMillis() предполагает, что сигнал должен сначала уйти мгновенно, а затем через 5 дней.

triggerAtMillis время в миллисекундах, что сигнал должен сначала пройти прочь, используя соответствующие часы (в зависимости от типа сигнала).

+0

Я не получаю его, пожалуйста, объясните –

+0

Второй параметр в вызове setRepeating указывает, когда будильник сначала должен быть выключен. Вы должны указать сегодня + 5 вместо текущего времени. –

+0

означает, что мне нужно использовать параметр времени там –

Смежные вопросы