共享参数
SharedPreferences
SharedPreferences是Android的轻量级存储工具,采用的存储结构是key-value的键值对方式
共享参数的存储介质
- 共享参数的存储介质是符合XML规范的配置文件。
- 保存的路径是:/data/data/应用包名/Shared_prefs/文件名.xml
共享参数的使用场景
- 共享参数主要用于如下场合:
- 简单且孤立的数据。若是复杂且相互有关的数据,则要保存在数据库中。
- 文本形式的数据。若是二进制数据,则要保存在文件中。
- 需要持久化存储的数据。在App退出后再次启动时,之前保存的数据仍然有效。
- 实际开发中,共享参数经常存储的数据有APP的个性化配置信息,用户使用APP的行为信息,临时需要保存的片段信息等。
SharedPreferences的使用
首先设置需要保存的文件名
private SharedPreferences preferences;
preferences = getSharedPreferences("config", Context.MODE_PRIVATE);
// 不存在此文件会创建
在点击事件中将要被添加的数据放入SharedPreferences
// 创建全局的文本用于将文本内容放入SharedPreferences
private TextView tv_counter;
tv_counter = findViewById(R.id.tv_counter);
// 调取SharedPreferences的Editer对象来编辑SharedPreferences中的内容
SharedPreferences.Editor editor = preferences.edit();
// 创建名为counter的钥匙,由于内容是文本类型,要强制转换成int类型存储,别问为什么转int,因为要用的数据是int的,看数据类型定
editor.putInt("counter", Integer.parseInt(counter));
// 提交编辑内容保存
editor.commit();
读取SharedPreferences创建的文件名中的内容
// 创建一个reload方法在onCreate()中调用
private void reload() {
// 设置counter钥匙中的内容默认值为0。
int counter = preferences.getInt("counter", 0);
//如果读取的数据内容为0就不读取
if (counter != 0) {
tv_counter.setText(String.valueOf(counter));
num = counter;
}
}
关于Context.MODE_PRIVATE
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
记录完成