Насколько я знаю, getDefaultSharedPreferences
загружает все файлы предпочтений в память. В моем приложении у меня есть много классов, где я передаю контекст и использую getDefaultSharedPreferences
. Во время выполнения эти классы загружаются так много раз, то в результате getDefaultSharedPreferences
называется выделенным. Мой вопрос: следует ли загружать настройки только один раз в классе Application, а затем получать доступ к настройкам оттуда во всех классах? Это выполнимо? Будет ли это увеличивать скорость моего приложения? Кто-нибудь это сделал?Должен ли я помещать getDefaultSharedPreferences в класс приложения
Что-то вроде этого:
private static MyApplication singleton;
public static MyApplication getInstance() {
return singleton;
}
@Override
public void onCreate() {
super.onCreate();
myPreferences = PreferenceManager.getDefaultSharedPreferences(this);
}
public SharedPreferences getPreferences(){
return myPreferences;
}
Ya вы можете это сделать. и по моему аспекту это увеличивает скорость и читаемость кода. –
Это называется шаблоном SingleTon, и вы можете его инициализировать в любом месте, не обязательно в классе приложения. Мое предложение: создать класс Helper, инициализировать его в классе Application и использовать метод Helper.getPreference() для получения экземпляра. –
@VishnuPrabhu Зачем вам нужно создавать однопользовательский класс Helper. Сам прикладной класс singleton использовал его. –