2015-10-07 3 views
0

Я попытался выполнить некоторую задачу один раз в день, используя AlarmManager, как в следующем коде.срабатывание AlarmManager в неправильное время

public void start_alarm(){ 
    SharedPreferences.Editor editor=alarm_prefs.edit(); 
    editor.putString("alarm", "alarm"); 
    editor.apply(); 
    editor.clear(); 

    Intent start_alarm=new Intent(MainPage.this,MailService.class); 
    PendingIntent pi=PendingIntent.getService(MainPage.this, 100, start_alarm, 0); 
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 

    Calendar calendar = Calendar.getInstance(); 

    calendar.add(Calendar.DATE,1); 
    calendar.set(Calendar.HOUR_OF_DAY, 12); 
    calendar.set(Calendar.MINUTE, 30); 
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.AM_PM, Calendar.AM); 

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),1000*60*60*24,pi); 
} 

Alarm обжигают никакой проблемы в этом нет. Но, как и в коде, я устанавливаю будильник на 12:30 AM. Но выше код запускает будильник на 06:30 AM. Я делаю что-то неправильно, пожалуйста, сообщите мне. Я установил Alarms в другом приложении в 12:15 AM. Но он также срабатывает в неподходящее время, то есть 06:15 AM. Пожалуйста, помогите мне с этим.

ответ

1

Для установки сигнала тревоги на 12.30 AM вы можете попробовать этот код.

// Set the alarm's trigger time to 12.30 A.M 
calendar.add(Calendar.DATE,1); 
calendar.set(Calendar.HOUR_OF_DAY, 0); 
calendar.set(Calendar.MINUTE, 30); 
calendar.set(Calendar.SECOND, 0); 

вместо

calendar.add(Calendar.DATE,1); 
calendar.set(Calendar.HOUR_OF_DAY, 12); 
calendar.set(Calendar.MINUTE, 30); 
calendar.set(Calendar.SECOND, 0); 
calendar.set(Calendar.AM_PM, Calendar.AM); 
Смежные вопросы