У опредленного устройства Android - не правильно работает AlarmManager
Я устанавливаю AlarmManager на 1 минуту, но на одном из устройств - BroadcastReceiver срабатывает только при открытии приложения (пока оно выключено, ничего не запускается).
Как можно решить эту проблему?
AndroidManifest.xml:
<receiver
android:name=".MyBroadcastReceiver"
android:exported="false"
android:process=":remote"/>
BroadcastReceiver.kt:
class MyBroadcastReceiver: BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if(context == null) return
pushNotification(context) // показывает уведомление (Notification)
startAlarmTask(context) // заново запускаем AlarmManager
}
private fun startAlarmTask(context: Context) {
val alarmIntent =
Intent(context, MyBroadcastReceiver::class.java).let { intent ->
PendingIntent.getBroadcast(
context,
0,
intent,
0
)
}
val alarmMgr = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
alarmMgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000 * 60), alarmIntent)
}
}
P.S. Код первинного запуска AlarmManager аналогичен с функцией startAlarmTask() выше.