Android数据存储方案--SharedPreferences存储

SharedPreferences是Android编程独有的一种文件存储方式,十分便利,操作友好。其工作原理是在/data/data/com.xxx.test/shared_prefs目录下面生成一个xml档案,以便数据读写。

不过,需要注意的是,官方目前推荐“只有相同user ID的process才能访问这个xml档案”,基本是就是“只允许程序自身对其读写”,这个xml的权限为“660” (-rw-rw----)。官方推荐默认属性“MODE_PRIVATE”, 其他如 MODE_WORLD_READABLE/MODE_WORLD_WRITEABLE/MODE_MULTI_PROCESS,官方均不推荐使用。

对SharedPreferences操作也十分方便,下面分别看看写/读SharedPreferences的代码。

1. SharedPreferences写入

分为3步,

1.1 调用SharedPreferences.Editor()方法,

1.2 向SharedPreferences.Editor()写入数据,如putBoolean()写入布尔类型,putString()写入字符串类型,其他还有方法putStringSet()/putInt()/putLong()/putFloat()等,

1.3 调用commit()或者apply()写入磁盘空间。

示例代码如下,

SharedPreferences pref = getSharedPreferences("start", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("isAutoStart", false);
editor.putInt("autoStartWaitTime", 5);
editor.putBoolean("isConfirmRestart", false);
editor.commit();

生成的xml如下,

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <int name="autoStartWaitTime" value="5" />
    <boolean name="isConfirmRestart" value="false" />
    <boolean name="isAutoStart" value="false" />
</map>

2. SharedPreferences读出

SharedPreferences读出则更简单写,首先初始化SharedPreferences对象,然后呼叫一系列的get方法,如getBoolean()/getInt()等。

示例代码如下,

SharedPreferences pref = getSharedPreferences("start", MODE_PRIVATE);
boolean isAutoStart = pref.getBoolean("isAutoStart", false);
int autoStartWaitTime = pref.getInt("autoStartWaitTime", 0);
boolean isConfirmRestart = pref.getBoolean("isConfirmRestart", false);
Log.d(TAG, "isAutoStart is " + isAutoStart);
Log.d(TAG, "autoStartWaitTime is " + autoStartWaitTime);
Log.d(TAG, "isConfirmRestart is " + isConfirmRestart);

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章