Android Alarm Manager не работает с определенной датой и временем

dict1 - это символ, который ссылается на базовый объект словаря. Назначение dict1 - dict2 просто присваивает ту же ссылку. Изменение значения ключа с помощью символа dict2 изменяет базовый объект, что также влияет на dict1. Это запутанно.

Гораздо проще рассуждать о неизменяемых значениях, чем ссылки, поэтому по возможности делайте копии:

person = {'name': 'Mary', 'age': 25}
one_year_later = {**person, 'age': 26}  # does not mutate person dict

Это синтаксически то же самое, что:

one_year_later = dict(person, age=26)
-1
задан Jude Babs Babandakana 13 July 2018 в 12:09
поделиться

2 ответа

1
ответ дан Jude Babs Babandakana 6 September 2018 в 09:17
поделиться

Сигнализации не срабатывают, если устройство находится в режиме Doze . Используйте setAndAllowWhileIdle или setExactAndAllowWhileIdle для аварийных сигналов, которые должны быть запущены в режиме Doze.

Из Android Doc .

  • Доступ к сети - приостановлено.
  • Система игнорирует блокировки слежения.
  • Стандартные тревоги AlarmManager (включая setExact() и setWindow()) откладываются до следующего окна обслуживания. Если вам нужно установить аварийные сигналы, которые срабатывают во время Doze, используйте setAndAllowWhileIdle() или setExactAndAllowWhileIdle().
  • Тревоги, установленные с помощью setAlarmClock (), продолжают нормально срабатывать - система выходит из Doz незадолго до того, как эти тревоги загорятся.
  • Система не выполняет сканирование Wi-Fi.
  • Система не позволяет запускать адаптеры синхронизации. Система не разрешает запуск JobScheduler.
0
ответ дан Khemraj 17 August 2018 в 12:59
поделиться
  • 1
    Но, как вы можете видеть, для всех устройств / эмуляторов, которые имеют уровень API 26 и выше, я фактически использую то, что вы упоминали & quot; setExactAndAllowWhileIdle & quot; и FYI. Я тестирую устройство, у которого есть Android Oreo, но до сих пор он не может его запустить. – Jude Babs Babandakana 13 July 2018 в 12:06
  • 2
    Вы можете видеть менеджера работы, я переключился на WorkManger из AlarmManager (из-за ненадежного поведения) – Khemraj 13 July 2018 в 12:10
  • 3
    но то, что я пытаюсь выполнить, очевидно, более целесообразно использовать AlarmManager для этого, чем workManager, см. ниже ссылку: stackoverflow.com/questions/50299814/… – Jude Babs Babandakana 13 July 2018 в 12:18
  • 4
    Да, спасибо за исправление меня. Для вашего требования нужен диспетчер аварийных сигналов. – Khemraj 13 July 2018 в 12:22
  • 5
    Позвольте мне проверить ваше дело, я вернусь к вам. – Khemraj 13 July 2018 в 12:22
Другие вопросы по тегам:

Похожие вопросы: