SharedPreferences间接继承了Context类。所以需要在activity下才可与使用接口
sp存储数据类型:boolean,float,int,long,String
数据保存路径:/data/data/packageName/shared_prefs/xxx.xml
可以设置的数据只能是当前应用读取,别的应用不可以
应用卸载时会删除此数据
获得对象方式:
1,getSharedPreferences(name, MODE_PRIVATE);
2,getPreferences(MODE_PRIVATE); //实质上也是有名称,系统将以activity的名称给它创建一个
一般来说,如果使用第二个,这个存储的文件是这个activity独有的
如果使用第一个,更适合用来做一个共享的数据,允许程序中其他部件来访问。
存入键值对时,需要commit()或者apply();apply()采用的是一个非同步(异步)提交的这个操作。
可以避免冲突。就相当于多个部件对这它进行读写,有可能产生碰撞,用apply()可以有效地避免
基本操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences sp = getSharedPreferences("name", MODE_PRIVATE);
SharedPreferences.Editor editor=sp.edit();
editor.putInt("KEY", 100);
editor.apply();
// editor.commit()
int i=sp.getInt("KEY", 0);//第二个参数是:如果没有找到KEY对应的值,则赋值参数值。
Log.e("TAG", i+"");</