Я знаю, что это самая распространенная тема в SO, но я не нашел ответа на мой вопрос. Я хочу включить динамический вещательный приемник в определенное время. Для этого я использую ниже кодАварийный менеджер Не запускается с правильным временем
public void method1() {
br = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent i) {
doTASK();
}
};
registerReceiver(br, new IntentFilter("com.XXXX.wakeup"));
pi = PendingIntent.getBroadcast(this, 0,
new Intent("com.xxxx.wakeup"), 0);
am = (AlarmManager) (this.getSystemService(Context.ALARM_SERVICE));
setAlarmManagerObject();
}
И setAlarmManagerObject() метод здесь
public void setAlarmManagerObject() {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
cal.set(year, month, day
, com.XXXX.Constants.AlarmHour
, com.xxxx.Constants.AlarmMinute
, com.xxxx.AlarmSecond);
am.setRepeating(AlarmManager.ELAPSED_REALTIME, cal.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pi);
}
Моя проблема заключается в том, что, когда я использовал AlarmManager.RTC_WAKEUP это просыпаются, когда устройство выключено. Я не хочу этого свойства в своем приложении. Поэтому я использовал AlarmManager.ELAPSED_REALTIME, но с диспетчером аварийных сообщений ELAPSED_REALTIME не запускается. Я хочу, чтобы мой диспетчер аварийных сообщений срабатывал точно в одно и то же время. Если устройство выключено или выключено, тогда диспетчер аварийных сигналов также отключится после пробуждения устройства. Он должен срабатывать в точное время. Любая помощь будет действительно оценена.
Я также ищу решение ,? – DJhon
Я ответил с ответом. Пожалуйста, проверьте. – maveroid
ELAPSED_REALTIME: Восстанавливает ожидающее намерение в зависимости от количества времени с момента загрузки устройства, но не пробуждает устройство. Истекшее время включает любое время, в течение которого устройство спало. Возможно, вы захотите попробовать RTC вместо RTC_WAKEUP. –