Android SharedPreferences使用详解
Android数据存储
- 共享数据SharedPreferences
- 应用组件Application
- Application的生命周期
- 利用Appliaction操作全局变量
共享数据SharedPreferences
共享数据的用法
SharedPreferences 是Android的一个轻量级存储工具,采用的存储结构是Key-Value的键值对形势
共享参数的存储介质是符合XML规范的配置文件,保存路径是:/data/data/应用包名/shared_prefs/文件名.xml
主要用于存储App的个性化配置信息,用户的行为信息,临时需要保存的片段信息//通过SharedPreferences,做成config.xml并写入信息
//通常SharedPreferences对象会在onCreate方法里取得
public void onClick(View view) {
//获取一个SharedPreferences对象,做成一个叫config的xml文件,它的模式是私有的
SharedPreferences sp = getSharedPreferences("config", Context.MODE_PRIVATE);
//要想编辑它,首先需要调用edit方法,拿到Editor对象
SharedPreferences.Editor editor = sp.edit();
editor.putString("name", "Tom");
editor.putInt("age", 10);
//编辑完了后,提交
editor.commit();
}
//从SharedPreferences对象里取值的方法,getXXXX,方法两个,第一个是key,第二个是defValue默认值
String name = sp.getString("name",null);
应用组件Application
Application的生命周期
Application是Android的一个大组件,在App运行过程中有且仅有一个Application对象,贯穿于整个生命周期
public class MyApplication extends Application {
//在App启动时调用
@Override
public void onCreate() {
super.onCreate();
Log.i("message", "onCreate");
}
//在App终止时调用,但属于是模拟方法,应用不会被回调,只在系统开发时用到
@Override
public void onTerminate() {
super.onTerminate();
Log.i("message", "onTerminate");
}
//在配置改变时调用,当横屏变为竖屏的时候
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i("message", "onConfigurationChanged");
}
}
利用Appliaction操作全局变量
全局变量可以方便整个应用中的各个组件间传递和共享数据
适合在Application中保存的全局变量主要有下面3种:
- 会频繁读取的信息,如用户名,手机号
- 不方便由意图传递的数据,例如位图对象,非字符串类型的集合对象
容易因频繁分配内存而导致内存泄漏的对象,如Handler对象
public class MyApplication extends Application {
private MyApplication myApp;
public Map<String, String> infoMap = new HashMap<String, String>();
public MyApplication getInit(){
return this.myApp;
}
//在App启动时调用
@Override
public void onCreate() {
super.onCreate();
myApp = this;
Log.i("message", "onCreate");
}
}
还没有评论,来说两句吧...