1. Главная / Android / Java / Хранилище приложения - SharedPreferences.

Хранилище приложения - SharedPreferences.


Нет комментариев.


SharedPreferences - является хранилищем внутри приложения. Его основная задача, сохранять различные настройки приложения.

Все данные сохраняются при закрытии приложения, но не сохраняются при его удалении или чистки памяти этого приложения в настройках телефона - приложения.

Для получения доступа к хранилищу, напишем такой код.
SharedPreferences mySharedPreferences = getSharedPreferences(имя хранилища, Context.MODE_PRIVATE);

Теперь mySharedPreferences имеет доступ к внутреннему хранилищу приложения.

Сохранение значений параметров

Сохранять можно различные типы переменных следующим образом.

SharedPreferences mSettings;
//Имя хранилища
public static final String APP_PREFERENCES = "settings";
//имена ключей хранилища
public static final String APP_VALUE_STRING = "stringValue";
public static final String APP_VALUE_LONG = "longValue";
public static final String APP_VALUE_INT = "intValue";
public static final String APP_VALUE_FLOAT = "floatValue";
public static final String APP_VALUE_BOOLEAN = "boolValue";

mSettings = getSharedPreferences("APP_PREFERENCES", Context.MODE_PRIVATE);//обычно инилизация происходит в onCreate().

boolean boolValue=true;
float floatValue = 1.12;
int intValue = 5;
long longValue = 102;
String stringValue="text";

Editor editor = mSettings.edit();
editor.putString(APP_VALUE_STRING, stringValue);
editor.putLong(APP_VALUE_LONG, longValue);
editor.putInt(APP_VALUE_INT, intValue);
editor.putFloat(APP_VALUE_FLOAT, floaValue);
editor.putBoolean(APP_VALUE_BOOLEAN, boolValue);
editor.apply();

Чтение значений параметров

int intValue = mSettings.getString(APP_VALUE_STRING, 0);
String stringValue=mSettings.getString(APP_VALUE_STRING, "");
// и т.д.

Чаще всего сохранения делают в методах активности onPause() или onStop(), а чтение в onCreate() или onResume().

Первый запуск приложения

public class SharedPreferencesExample extends Activity {
private static final String MY_SETTINGS = "my_settings";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

SharedPreferences sp = getSharedPreferences(MY_SETTINGS,
Context.MODE_PRIVATE);
// проверяем, первый ли раз открывается программа
boolean hasVisited = sp.getBoolean("hasVisited", false);

if (!hasVisited) {
// выводим нужную активность
Editor e = sp.edit();
e.putBoolean("hasVisited", true);
e.commit(); // не забудьте подтвердить изменения
}
}
}


Нет комментариев.


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

Ваше имя:

Оценка