Android 五种数据存储的方式
- SharedPreferences:以Map形式存放简单的配置参数;
- ContentProvider:将应用的私有数据提供给其他应用使用;
- 文件存储:以IO流形式存放,可分为手机内部和手机外部(sd卡等)存储,可存放较大数据;
- SQLite:轻量级、跨平台数据库,将所有数据都是存放在手机上的单一文件内,占用内存小;
- 网络存储 :数据存储在服务器上,通过连接网络获取数据;
SharedPreferences概述
SharedPreferences(简称SP)是Android中很常用的数据存储方式,SP采用key-value(键值对)形式,主要用于轻量级的数据存储,尤其适合保存应用的配置参数,但使用SP来存储大规模的数据可能会降低性能。
SP采用xml文件格式来保存数据,该文件所在目录位于/data/data/shared_prefs/。
SharedPreferences使用
写入数据
创建一个SharedPreferences对象
SharedPreferences sharedPreferences= getSharedPreferences("data",Context.MODE_PRIVATE);
实例化SharedPreferences.Editor对象
SharedPreferences.Editor editor = sharedPreferences.edit();
将获取过来的值放入文件
editor.putString("name", “Tom”);
editor.putInt("age", 28);
editor.putBoolean("marrid",false);
提交
editor.commit();
读取数据
SharedPreferences sharedPreferences= getSharedPreferences("data", Context .MODE_PRIVATE);
String userId=sharedPreferences.getString("name","");
删除指定数据
editor.remove("name");
editor.commit();
清空数据
editor.clear();
editor.commit();
实现示例
流程是输入账号密码后点击登录,将信息保存到SharedPreference文件中, 然后重启app,看到数据已经显示在文本框中了
private void saveUserInfo() {
SharedPreferences sp=getSharedPreferences("userInfo",MODE_PRIVATE);
SharedPreferences.Editor editor=sp.edit();
editor.putString("userName",et_name.getText().toString());
editor.putString("userPwd",et_password.getText().toString());
editor.apply();
Toast.makeText(this,"信息保存成功!",Toast.LENGTH_LONG).show();
}
private void readUserinfo() {
SharedPreferences sp=getSharedPreferences("userInfo",MODE_PRIVATE);
String name=sp.getString("userName","请输入用户名!");
String pwd=sp.getString("UserPwd","请输入密码!");
et_name.setText(name);
et_password.setText(pwd);
}