Здравствуйте! Меня интересует такой вопрос: как правильно организовать хранение часто используемых данных? У меня есть 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();
Комментариев нет:
Отправить комментарий