Мой повторный сигнал не работает после отключения Wi-Fi - PullRequest
1 голос
/ 11 марта 2019

На моем устройстве нет сим-карты или сети, кроме Wi-Fi.

Теперь я устанавливаю повторный будильник для ежедневного режима, который работает нормально при подключении к Wi-Fi, но не включается по времени, когда Wi-Fi не подключен на планшете Android.

val pendingIntent = PendingIntent.getBroadcast(context, requestCode, archiveIntent, PendingIntent.FLAG_CANCEL_CURRENT)
        val alarms = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
        alarms.cancel(pendingIntent)
        alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, updateTime.timeInMillis, AlarmManager.INTERVAL_DAY, pendingIntent)

Вот мои наблюдения:

  1. Допустим, я установил будильник в 7:10 вечера, и когда время устройства изменилось на 7:10 вечера, он получил вызов, как и ожидалось, когда Wi-Fi постоянно подключен.

  2. Теперь тот же сценарий, в котором будильник установлен на 7:10 вечера, но когда время устройства меняется на 7:10 вечера, но в это время Wi-Fi не подключен, Теперь после 7:11 я включаю свой Wi-Fi на устройство, Сразу после того, как я подключил Wi-Fi, в этом случае был вызван мой предыдущий установленный сигнал тревоги.

Может кто-нибудь знает, что может быть причиной того, что тревога не срабатывает во время, когда Wi-Fi не подключен?

ПРИМЕЧАНИЕ: В своей трансляции по тревоге я запускаю WorkManager, который имел ограничение на запуск только при подключении к сети Wi-Fi, но я считаю, что WorkManager не должен влиять на мой триггер тревоги.

1 Ответ

1 голос
/ 11 марта 2019

Посмотрите на этот ответ

Это не имеет ничего общего с Wi-Fi, то, как вы настроили его, попробуйте setRepeating вместо setInexactRepeating.Разница хорошо объяснила приведенный выше ответ.

Редактировать

В конце концов он заработал после изменения флага на 0, как показано ниже

val pendingIntent = PendingIntent.getBroadcast(context, requestCode, archiveIntent, 0)

Передача0 вернет любой существующий сигнал тревоги или создаст новый.

...