Хранилище приложения - 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(); // не забудьте подтвердить изменения
}
}
}