Я пытаюсь создать приложение, в котором я получаю уведомление, даже если мое приложение не запущено, поэтому я создал диспетчер аварийных сигналов в своей функции MainActivity. Проблема в том, что он срабатывает в одно и то же время, потому что я использую alarnManager.setExact()
. Я попытался использовать alarmManager.setRepeating()
, но он не дает точного интервала в 10 секунд. Это мой код:
MainActivity
fun setAlarm() {
context = this
alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
val seconds = 10 * 1000
val intent = Intent(context, Receiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + seconds, seconds.toLong(), pendingIntent )
Log.d("MainActivity", "Create: ${Date().toString()}")
}
Это внутренний класс внутри моей MainActivity
class Receiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Log.d("MainActivity", " Receiver: ${Date().toString()}")
}
}
Можете ли вы научить меня, как заставить будильник повторяться каждые х секунд? Я думал вызвать fun setAlarm()
из MainActivity в override fun onReceive()
, чтобы он обновился, но я не могу получить доступ к методу из class Receiver: BroadcastReceiver()
. Спасибо!