Почему тревоги не работают при настройке на следующий день и в течение долгих часов, когда устройство неактивно в течение длительного времени, тревоги не срабатывают

Calendar calendars = Calendar.getInstance();
                        calendars.setTimeInMillis(System.currentTimeMillis());
                        calendars.set(Calendar.HOUR_OF_DAY, hour);
                        calendars.set(Calendar.MINUTE, min);
                        calendars.set(Calendar.SECOND, 0);
                        calendars.set(Calendar.MILLISECOND, 0);
                        calendars.set(Calendar.AM_PM, timezone);
                        
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), currentTime, intent, PendingIntent.FLAG_UPDATE_CURRENT);


if (Build.VERSION.SDK_INT < 23) {
                        if (Build.VERSION.SDK_INT >= 19) {
                            alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendars.getTimeInMillis(), pendingIntent);
                        } else {
                            alarmManager.set(AlarmManager.RTC_WAKEUP, calendars.getTimeInMillis(), pendingIntent);
                        }
                    } else {
                        alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendars.getTimeInMillis(), pendingIntent);
                    }

В моем приложении, если я установил будильник в течение часа, он работает нормально, но в течение длительного времени он не работает.

Я много искал относительно проблемы с тревогой, с которой мы сталкиваемся, и обнаружил, что в последних обновлениях Android ОС Android убивает приемники вещания, если память нужна для другой задачи ИЛИ в разряженном состоянии ИЛИ без причины.

В некоторых случаях, если мобильный телефон находится в режиме ожидания / бездействия, это время также не работает.

Вы можете проверить ниже ссылки.

1) https://www.fusonic.net/en/blog/why-my-broadcastreceiver-does-not-get-called/

2) sendWakefulWork не всегда вызывается с помощью cwac-wakeful-1.1.0

3) Тревога в Android прекращается, когда прошло несколько часов

4) /questions/28969281/budet-li-alarmmanager-rabotat-esli-moe-prilozhenie-ne-zapuscheno/28969293#28969293

Я обнаружил, что если вы убили приложение из фона, то все приемники тревоги очищаются. Для этого вы должны включить автозапуск для вашего приложения.

Однако мы не можем установить его программно, потому что все мобильные бренды имеют разные методы для этого.

а. VIVO mobile - настройки - дополнительные настройки - Приложение - автозапуск - Включить автозапуск для вашего приложения.

б. Redmi mobile - приложение безопасности> разрешения> автозапуск - включите автозапуск для вашего приложения.

И в коде я сделал Фоновые службы, которые будут работать в фоновом режиме и сбрасывать сигналы тревоги через каждые предопределенные интервалы.

После этого все еще не работают утренние будильники на некоторых устройствах, таких как Redmi Note 4, Samsung S3

В других устройствах сработали альтернативные сигналы тревоги. пример - если я установлю 3 будильника на 7,8,9 утра. только 2-3 работали.

Android OS тоже убивает сервисы BG? Пожалуйста помоги.

0 ответов

Другие вопросы по тегам