Страницы

Поиск по вопросам

четверг, 20 декабря 2018 г.

Android: Как правильно хранить данные?

Здравствуйте! Меня интересует такой вопрос: как правильно организовать хранение часто используемых данных? У меня есть 3 коллекции, данные которые они хранят используются для вывода нескольких ListView. Изначально я запихнул коллекции в статичные переменные в базовую активити и они были доступны отовсюду. Сейчас я переделал эту схему на выборку из базы, каждый раз когда эти данные требуются, и вот не пойму, правильно я сделал, или хранение в статических переменных это нормальная практика для подобных задач?


Ответ

Глобальные переменные зло, если только с ними неправильно обращаться. По самой сути явления всегда есть переменные, которые должны быть глобальными - скажем хэндлер к БД (или если угодно хэндлер к DAO) - он по сути своей глобален - нравится это кому то или нет.
Идеальным местом для хранения таких глобальных вещей является объект Application, который является естественным синглтоном для Android аппликации.
Надо декларировать в манифесте кастомный Application класс и "положить" туда свои глобальные переменные туда (обложив сеттерами/геттерами). Application практически везде доступен через Activity.getApplication()
public class MyApplication extends Application { private MyPreciousClass myPreciousObject;
public MyPreciousClass getMyPreciousObject() { return this.myPreciousObject; } }
//где в коде MyApplication myApp=(MyApplication)this.getApplication(); myPreciousObject=myApp.getMyPreciousObject();

Комментариев нет:

Отправить комментарий