Какие методы Android вызываются, когда умирает батарея?

Когда батарея на моем устройстве Android перестает работать, какие методы в классах Activity и Fragment (если они есть) вызываются на этапе "Выключение" устройства?

Кроме того, если пользователь в настоящее время смотрит на экран в моем приложении, и он удерживает кнопку питания и выбирает выключить, совпадают ли вызванные / не вызванные события с тем, когда батарея разряжается и автоматически отключается?

OnPause?

OnStop?

OnDestroy?

OnDetach?

Бонус: у меня будет достаточно времени, чтобы сохранить небольшой объем данных на веб-сервере?

Чтобы уточнить "умирает", когда батарея устройства "полностью" разряжена, больше не принимает ввод, и на экране появляется окно сообщения / загрузки, сообщающее "Выключение". Вскоре после этого устройство выключается.

Мне просто нужно достаточно времени, чтобы сохранить состояние форм, прежде чем телефон выключится, у меня есть стратегия очистки сохраненных данных, если телефон не выключается, но я хочу подойти как можно ближе к выключению телефона (больше, чем минута действительно бессмысленна).

2 ответа

Решение

onDestroy вызывается на все, когда батарея достигает 0,5%

РЕДАКТИРОВАТЬ: Нет определенного времени, когда вам нужно что-то делать в процессе выключения из-за разряженной / разряженной батареи, что будет зависеть от конкретной батареи телефона, а не от системы, поэтому у вас может быть достаточно времени для сохранения данных в Интернете сервер на некоторых телефонах, но не на других. Экспериментально я смог записать только короткую строку в файл, в который я уже писал, до вызова onDestroy и ничего более.

Методы, которые вы упомянули, это обратный вызов жизненного цикла активности, ни один из них не будет вызываться при низком заряде батареи. Вы должны использовать приемник вещания для этого

Смотрите это Как определить, когда батарея разряжена: Android?

Другие вопросы по тегам