Android有5中主要的数据存储方式:
1、Android本身的数据库(SQLite数据库):SQlite是一个轻量级的、跨平台的数据库。占用内存小,支持基本的SQL语法,通常用于存储用户信息。
2、SharedPrefrences:保存少量数据,并且这些数据的格式简单:字符串型和基本数据类型。
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。 SharedPreferences本身是一 个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,该方法中name表示要操作的xml文件名,第二个参数具体如下:
Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写
Editor有如下主要重要方法:
SharedPreferences.Editor clear():清空SharedPreferences里所有数据
SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
boolean commit(): 当Editor编辑完成后,使用该方法提交修改
public class MainActivity extends AppCompatActivity {
private EditText etkl;
private Button setkl;
private Button getkl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etkl = (EditText) findViewById(R.id.kouling);
setkl = (Button) findViewById(R.id.setkouling);
getkl = (Button)findViewById(R.id.getkouling);
setkl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String code = etkl.getText().toString().trim();
SharedPreferences.Editor editor = getSharedPreferences("lock",MODE_WORLD_WRITEABLE).edit();
editor.putString("code",code);
editor.commit();
Toast.makeText(MainActivity.this,"口令设置成功",Toast.LENGTH_LONG).show();
}
});
getkl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences read = getSharedPreferences("lock",MODE_WORLD_READABLE);
String value = read.getString("code","");
Toast.makeText(MainActivity.this,"口令为:" + value,Toast.LENGTH_LONG).show();
}
});
}
}
3、文件存储:数据以 I/O 流的形式把数据存入手机内存或者手机SD卡
参考链接:https://www.cnblogs.com/ITtangtang/p/3920916.html
4、ContentProvider,内容提供者。以数据库的形式存入手机,可以共享自己的数据给其他应用使用,相对于其他对外共享数据方式而言,ContentProvider统一了数据访问方式,使用起来更规范。
5、网络存储,把数据存储到服务器中,不存储在本地,使用的时候直接从网络获取。