Android - уже загруженные данные не отображаются при первом запуске приложения из последнего приложения

В моем приложении у меня есть некоторые данные для отображения на панели инструментов, которые поступают из sqlite db. Но когда я помещаю приложение в последнее приложение и открываю приложение из списка последних приложений на следующий день, эти данные не отображаются и не показывают сообщение об ошибке (которое я установил для отображения, когда в sqlite нет данных).

Чтобы дать лучшее представление о моей проблеме, это основные шаги.

  1. Установить приложение
  2. Открыть приложение
  3. Навигация по страницам
  4. Держите устройство
  5. Открыть заявку на следующий день
  6. Проверьте поведение Dashboard (данные не отображаются)

Я думаю, что Android может автоматически убивать приложения в последнем приложении, не так ли?

Как я могу решить эту проблему?


person charitha amarasinghe    schedule 03.05.2016    source источник
comment
Правильно реализуйте жизненный цикл действия, как описано здесь: developer.android.com/reference/android. /app/Activity.html Возможно, вы используете статические поля для хранения данных, не делайте этого.   -  person Henry    schedule 03.05.2016


Ответы (2)


Если данные, которые вы храните, относятся только к вашей деятельности и другим классам, Android удалит данные в соответствии с приоритетом использования памяти.

Это применимо и к статическим переменным. Решением для этого будет сохранение данных с использованием Parcelable. интерфейс.

  • Храните данные либо с помощью Parcelable, либо в Sqlite.
  • Получите то же самое при повторной загрузке Activity/Fragment
  • Используйте доступные плагины для создания этих объектов для простоты программирования, например android-parcelable-intellij- плагин-котлин

Для примера реализации используйте эту ссылку StackOverflowLink.

person Sreehari    schedule 03.05.2016

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

Исходя из этого, вам, возможно, придется реализовать onPause() и onResume() соответственно.

введите здесь описание изображения

person Supratim Haldar    schedule 03.05.2016