Как часто отправляются ACTION_BATTERY_CHANGED на реальных устройствах?

В эмуляторе, если я устанавливаю power capacity на значение, отличное от текущего значения, мой BroadcastReceiver onReceive вызывается с новым значением. (Я зарегистрировался в ACTION_BATTERY_CHANGED.)

В реальном устройстве, батарея которого разряжается со 100 до 20 процентов за несколько дней, будет вызываться мой onReceive метод:

  • ровно 80 раз,
  • более 80 раз или
  • менее 80 раз?

Re: возможный повторяющийся вопрос - меня также беспокоит то, что обработчик вызывается недостаточно часто. Я также не совершил ошибку, зарегистрировав широковещательный приемник внутри другого широковещательного приемника.


person fadedbee    schedule 19.11.2015    source источник
comment
Возможный дубликат ACTION_BATTERY_CHANGED стреляет как сумасшедший   -  person Neji    schedule 19.11.2015


Ответы (2)


Кажется, что наиболее распространенным поведением является отправка ровно 80 сообщений, но некоторые устройства отправляют больше или меньше. Это сильно различается между реальными устройствами, поэтому его необходимо будет сравнить с конкретными устройствами, которые вы будете использовать, или обрабатывать в общем случае.

Для большинства устройств, с которыми я работал, в этом сценарии ACTION_BATTERY_CHANGED будет отправлено ровно 80 раз. (Намерение также будет отправлено, когда устройство подключено и отключено.)

Однако для небольшого количества моделей сообщение отправляется каждый раз при изменении температуры батареи. Это может происходить очень часто, в частности, в зависимости от того, сколько обработки выполняет планшет. Я работаю по памяти, но думаю, что планшет Verizon Ellipsis 7 ведет себя так.

Кроме того, некоторые устройства, по-видимому, отправляют сообщения реже, чем один раз на 1% изменения уровня заряда батареи. Вот пример более частых сообщений и здесь приведен пример меньшего количества сообщений.

person abeboparebop    schedule 19.11.2015

Android не гарантирует, что, например. между разрядкой батареи от 100 до 80%, система не гарантирует, что она будет отправлять 20 событий один раз на процент разрядки батареи. Учитываются многие параметры. Вы можете найти простое объяснение здесь

Если вы хотите следить за разрядкой батареи, своевременно выполняйте пул. Количество событий от системы может варьироваться от устройства к устройству.

person Neji    schedule 19.11.2015