Я работаю над приложением, в котором мне нужно обновить время в дБ, когда происходит либо Battery_Status_Full (батарея заряжена на 100%) / зарядка отключена, в зависимости от того, что произойдет раньше.
Я могу получить событие отключения батареи и обновить базу данных на основе этого события, но пока устройство все еще заряжается и достигает 100% заряда, когда внутри службы - onCreate я зарегистрировал broadcastReceiver с IntentFilter (Intent. ACTION_BATTERY_CHANGED) и пытаясь вызвать повторяющееся событие после, скажем, каждые 5 минут, чтобы проверить, завершена ли 100% зарядка батареи, я, кажется, никогда не получаю событие 100% и, следовательно, всегда происходит обновление db отсоединения, а не обновление 100% зарядки.
Кроме того, с моим AlarmManager служба проверки на 100% заряд батареи запускается только один раз и не повторяется.
Пожалуйста, руководство. Я почти закончил с моим приложением, но эта маленькая ошибка заставляет меня сходить с ума.
Спасибо
Омкар Гайс
---- Подробнее ----
Моя архитектура приложения, как показано ниже,
BroadcastReceiver (зарегистрирован для ACTION_POWER_CONNECTED и ACTION_POWERDISCONNECTED). В каждом случае запускается отдельная служба для обработки транзакций БД. Для подключенного POwer он устанавливает Intent с дополнительной информацией, называемой ADD, а для отключенного - с помощью Update
Когда служба запускается, в своем onCreate она регистрирует получателя, передавая нулевой широковещательный приемник для IntentFilter ACTION_BATTERY_CHANGED
и в onStartCommand для флага добавления в намерении новая запись сохраняется в БД.
В случае флага обновления - только если ранее не было выполнено обновление записи в БД, я продолжаю и обновляю БД
У меня есть AlarmManager с setRepeating под приведенной выше логикой добавления / обновления (If-Else), который запускает другой сервис с помощью getService (serviceclass.class)
Я ожидаю, что в рамках новой услуги, когда я продолжаю проверять, достиг ли уровень батареи 100%, я обновляю там саму БД.
Если батарея никогда не достигает 100% и сработала Battery_Dicsonnected, то в блоке обновления выше, база данных в любом случае будет обновлена, с любым уровнем заряда батареи в это время.
Сомнения / проблемы -
- Но проблема в том, что новая служба, вызываемая из alarmmanager, запускается / вызывается только один раз.
- Где именно разместить этот диспетчер аварий в 1-й службе?
- Создан ли второй сервис для постоянной проверки уровня заряда батареи на 100%?
Руководство Pls. Я могу очень хорошо опубликовать код, если это необходимо.
Спасибо
Omkar