0

У нас есть очень сложная проблема с воспроизведением приложения. Прецедент выглядит следующим образом:Есть ли способ внутри android знать, когда система собирается убить мое приложение?

  • Пользователь открывает App
  • Пользователь оставляет приложение в фоновом режиме
  • openes пользователя 5 до более 7 приложений
  • система убивает наше приложение
  • Когда пользователь пытается возобновить приложение , приложение падает из-за NullPointerException

Я пытался использовать лог консоли с Application метод класса onTrimMemory() и onLowMemory(), но эти методы не вызываются. Есть ли способ или обратный вызов, который я могу слушать, когда система Android будет убивать мое приложение из-за открытия большего количества приложений и в этом случае для меня что-то делать?

+0

Попытайтесь ovveride этих методов в коде деятельности, а не приложения один – Massimo

+0

ли вы правильно объявить Класс применения в вашем манифесте? – malrok44

+0

Насколько я знаю, это невозможно прямо (я был бы рад быть опровергнутым, поскольку я также искал такой путь). Косвенным образом вы можете реализовать какой-то сигнал keep keep. Используя это, чтобы сделать ваше приложение еще нужным (так что другие приложения на холостом ходу будут убиты перед вашим приложением) или чтобы проверить отметку времени последнего сигнала keep keep alive, чтобы увидеть, что приложение было мертвым до достижения этой проверки (в результате воссоздания все необходимые части). – chevalier

ответ

2

Вы можете сохранить все состояния, которые вам нужны, в onSaveInstanceState() и восстановить их в onRestoreInstanceState(). onDestroy() - это то, что система чаще всего вызывается для очистки комнаты, пока ваше приложение находится в фоновом режиме, но не гарантируется, что оно будет вызвано, поэтому лучше уже сохранить свои состояния в onSaveInstanceState().

0

Есть ли способ или обратный вызов, который я могу слушать, когда система Android убьет мое приложение из-за открытия большего количества приложений и в этом случае для меня что-то сделать?

Не совсем. В зависимости от обстоятельств будет вызываться onDestroy() текущих действий и услуг.

У нас есть один очень трудно воспроизвести проблему с приложением

Это должно быть воспроизводимым в считанные секунды:

  1. Запустить приложение.

  2. Переключить на другое приложение.

  3. Убейте процесс своего приложения с помощью панели инструментов IDE (например, «Завершить приложение») в окне инструмента «Android Monitor»).

  4. Попробуйте вернуться к вашему приложению из обзорного экрана (он же, список последнего-задач)

Смежные вопросы