Android 上如何写配置文件: 使用 SharedPreferences
SharedPreferences 是 Android 平台上一个轻量级的存储类, 用来保存应用的一些常用配置, 比如 Activity 状态, Activity 暂停时, 将此 activity 的状态保存到 SharedPereferences 中; 当 Activity 重载, 系统回调方法 onSaveInstanceState 时, 再从 SharedPreferences 中将值取出. SharedPreferences 提供了 java 常规的 Long,Int,String 等类型数据的保存接口. SharedPreferences 类似过去 Windows 系统上的 INI 配置文件, 但是它分为多种权限, 可以全局共享访问. 提示最终是以 xml 方式来保存, 整体效率来看不是特别的高, 对于常规的轻量级而言比 SQLite 要好不少, 如果真的存储量不大可以考虑自己定义文件格式. xml 处理时 Dalvik 会通过自带底层的本地 xml Parser 解析, 比如 XMLpull 方式, 这样对于内存资源占用比较好
通过 SharedPreferences 可以保存程序的某些配置信息, 而程序员不需要知道它到底以什么形式保存的, 保存在了什么地方.
在 Android 系统中, SharedPreferences 中的信息以 xml 文件的形式保存在 /data/data/PACKAGE_NAME/shared_prefs 目录
获取 SharedPreferences 的两种方式:
1 调用 Context 对象的 getSharedPreferences() 方法
2 调用 Activity 对象的 getPreferences() 方法
两种方式的区别:
调用 Context 对象的 getSharedPreferences() 方法获得的 SharedPreferences 对象可以被同一应用程序下的其他组件 http://www.2cto.com/kf/all/zujian/ 共享.
调用 Activity 对象的 getPreferences() 方法获得的 SharedPreferences 对象只能在该 Activity 中使用.
SharedPreferences 的四种操作模式:
- Context.MODE_PRIVATE
- Context.MODE_APPEND
- Context.MODE_WORLD_READABLE
- Context.MODE_WORLD_WRITEABLE
Context.MODE_PRIVATE: 为默认操作模式, 代表该文件是私有数据, 只能被应用本身访问, 在该模式下, 写入的内容会覆盖原文件的内容
Context.MODE_APPEND: 模式会检查文件是否存在, 存在就往文件追加内容, 否则就创建新文件.
Context.MODE_WORLD_READABLE 和 Context.MODE_WORLD_WRITEABLE 用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE: 表示当前文件可以被其他应用写入.
例子:
将数据保存至 SharedPreferences:
- SharedPreferencespreferences=getSharedPreferences("user",Context.MODE_PRIVATE);
- Editor editor=preferences.edit();
- String name="xixi";
- String age="22";
- editor.putString("name", name);
- editor.putString("age", age);
- editor.commit();
从 SharedPreferences 获取数据:
- SharedPreferencespreferences=getSharedPreferences("user", Context.MODE_PRIVATE);
- Stringname=preferences.getString("name", "defaultname");
- Stringage=preferences.getString("age", "0");
来源: http://www.bubuko.com/infodetail-3122492.html