Примечание. Ни setAndAllowWhileIdle (), ни setExactAndAllowWhileIdle () не могут генерировать сигналы тревоги чаще, чем раз в 15 минут для каждого приложения.

имаюсь разработкой приложения, которое должно выполнять определенные действия в точное время, установленное пользователем. Для этого я используюsetExactAndAllowWhileIdle() метод, потому чтоэта документация говорит, что устройства на базе Android с Android 6.0 или выше имеют концепцию режима ожидания, в которой, если устройства остаются бездействующими в течение некоторого времени, они переходят в режим ожидания, а режим ожидания ограничивает сигналы тревоги Если я хочу включить мой сигнал тревоги, когда устройство находится в режиме ожидания, тогда у меня естьsetExactAndAllowWhileIdle() Метод, как говорится в документации. Эта документация также содержит ручной способ ввода устройства в режим ожидания для целей тестирования. Итак, я тестирую с использованием этого способа, но мой сигнал тревоги не срабатывает, когда устройство находится в режиме ожидания, и когда я прекращаю режим ожидания с помощью команды терминала, мой предыдущий сигнал тревоги срабатывает мгновенно.

Итак, моя проблема в том, чтоsetExactAndAllowWhileIdle() этот метод не работает в режиме ожидания, но он должен работать, как указано в документации. Я знаю ограничение этого метода, что я могу срабатывать только один сигнал тревоги за 9 минут, и я следую этому правилу. Итак, я не могу понять, где проблема.

Мой код:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC, d.getTime(), pendingIntent);
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
    alarmManager.setExact(AlarmManager.RTC, d.getTime(), pendingIntent);
else
    alarmManager.set(AlarmManager.RTC, d.getTime(), pendingIntent);

Это проблема метода или я делаю это неправильно?

Ответы на вопрос(3)

Ваш ответ на вопрос