2013-12-07 4 views
0

Я пытаюсь сделать простой будильник, и все работает так, как должно, но я нахожу, что срабатывание тревоги задерживается.Android Alarm работает, но задерживается

Я думаю, проблема может заключаться в том, что система записывает точную миллисекунду. Я устанавливаю будильник, а затем запускаю будильник на этой точной миллисекунде. Так, например, если я делаю будильник в 8:00 утра, но я установил будильник в 10:00 - 30.225pm, тогда будильник будет срабатывать в 8:00 - 30.225am.

Как я буду следить за тем, чтобы будильник срабатывал точно в минуту? Я попытался использовать setExact (...), но это просто вызвало мое приложение для сбоя.

Заранее благодарен!

public void setAlarm(View view) { 

    TimePicker timePick = (TimePicker) findViewById(R.id.time_pick); 
    Calendar calendar = Calendar.getInstance(); 

    //Set alarm based on values in time picker 
    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.set(Calendar.HOUR_OF_DAY, timePick.getCurrentHour()); 
    calendar.set(Calendar.MINUTE, timePick.getCurrentMinute()); 

    setAlarmDisplay(calendar); //shows time in EEE, MMM d yyyy hh:mm aa format 

    Intent intent = new Intent(this, AlarmReceiver.class); 
    alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
    alarmManager = (AlarmManager) (this.getSystemService(Context.ALARM_SERVICE)); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent); 

    Toast.makeText(view.getContext(), "Alarm set!", Toast.LENGTH_LONG).show(); 
} 

ответ

2

Я бы предпочел прокомментировать это, но у меня еще нет репутации 50, поэтому мне нужно будет отправить ответ.

Я думаю, что проблема является линия

calendar.setTimeInMillis. 

Затем установите час и минуту, но все остальное (в секундах и мс) оставаться точно так, как это было, когда вы запускали этот код.

Если вы хотите, чтобы будильник срабатывал ровно в 10:30, установите часы, установите минуты, а затем сбросьте секунды и миллисекунды на 0;

+0

Ну, это было легко. Хаха спасибо. – AshesOfTheWake

+0

Yup !!! хорошая идея.. :) –