Является ли использование единого для хранения данных некорректно в Android?
Это практика, которой я пользуюсь уже некоторое время, но, похоже, она устарела, в литературе, похоже, говорится, что правильный способ сохранения и восстановления данных, когда экран переходит в фоновый режим или поворачивается, - это фрагменты.
Я хотел бы ваше мнение по этому вопросу
То, что я делал в своих приложениях, это создание класса, который я называю ApplicationDataHolder()
Здесь есть все переменные, которые определяют состояние каждого действия и фрагмента, хранящиеся в нем.
Например, у меня есть действие, которое показывает список билетов и два виджета, один для способа сортировки билетов и один для выбора, будет ли он восходящим или нисходящим.
Для этого я создал переменные List _tickets, SortOrder _order и boolean _ascending в моем DataHolder () и дал им значения по умолчанию
Всякий раз, когда действие воссоздается / создается в первый раз, я обращаюсь к этим переменным, чтобы установить значения по умолчанию (каким будет порядок сортировки по умолчанию, каков будет первоначальный список)
Разве это не оптимальный путь? Могут ли это вызвать проблемы (например, после поворота экрана слишком много раз), в чем преимущество использования фрагментов или состояния сохранения / восстановления состояния по сравнению с этим?
Заранее благодарим за любую помощь, которую вы можете предоставить
1 ответ
правильный способ сохранить и восстановить данные, когда экран переходит в фоновый режим или вращается, это фрагменты
Здесь речь идет о данных, которые получаются динамически, либо в виде входных данных от пользователя, либо данных, поступающих от датчика или веб-службы. Эти данные должны быть восстановлены с помощью onSaveInstanceState()
а также onConfigurationChanged()
когда происходит изменение состояния, такое как вращение или пролистывание вкладки.
Начальные значения, конечно, могут быть сохранены в центральном файле глобальных констант, в этом нет ничего плохого.