Жизненный цикл Android - ActivityManager убивает процесс -> Исключение при возврате из фона

У меня очень скучная проблема. Когда мое приложение переходит в фоновый режим, иногда процесс прерывается, как показывает LogCat:

INFO/ActivityManager(187): Low Memory: No more background processes.
INFO/ActivityManager(187): Process com.app.myapp (pid 20681) has died.
INFO/WindowManager(187): WIN DEATH: Window{40592708 com.app.myapp/app.myapp.dashboard.Dashboard paused=false}
ERROR/InputDispatcher(187): channel '408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
ERROR/InputDispatcher(187): channel '408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)' ~ Channel is unrecoverably broken and will be disposed!
INFO/WindowManager(187): WIN DEATH: Window{408b1d40 app.myapp/app.myapp.menus.products.Promotions paused=false}
INFO/ActivityManager(187): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=app.myapp/.Main } from pid 187
INFO/ActivityManager(187): Start proc app.myapp for activity app.myapp/.menus.products.Promotions: pid=20721 uid=10062 gids={3003, 1015}

Когда я затем пытаюсь вернуться в приложение, через переключатель задач (долгое нажатие домой) он пытается вернуться к последнему открытому действию ... и вылетает.

Почему он не открывается с нуля, открывая Main, поскольку все приложение было закрыто?

Ошибки ERROR / InputDispatcher не всегда появляются.

ОБНОВЛЕНИЕ:

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

ОБНОВЛЕНИЕ 2:

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

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

Эти ссылки помогли понять проблему ... нет четкого ответа о том, как сохранить данные из приложения: Как объявить глобальные переменные в Android?

ОБНОВЛЕНИЕ 3:

Поэтому я задал вопрос , как правильно сохранить данные приложения . Это может помочь тем, у кого такой же вопрос: Android: лучший способ сохранить данные, хранящиеся в Application Singleton Class

6
задан Community 23 May 2017 в 10:24
поделиться