配置信息的存储和读取

简介: 一般游戏涉及到的配置文件信息都以kv的形式存在且数量非常之少,这个时候搞一个sqlite的数据库显然有点奢侈,搞个配置文件合适一点,但是android的dev guide显然提供出来一套更合适的做法,SharedPreferences。 从存储的模式上来说 SharedPreferences实际上

一般游戏涉及到的配置文件信息都以kv的形式存在且数量非常之少,这个时候搞一个sqlite的数据库显然有点奢侈,搞个配置文件合适一点,但是android的dev guide显然提供出来一套更合适的做法,SharedPreferences。
从存储的模式上来说 SharedPreferences实际上是系统专门提供的kv存储模式,针对不同的application提供私有的存储,虽说私有但是还是可以通过Provider来向别的程序提供这类私有数据。。好吧,我们不需要关注这些。。
SharedPreferences提供保存任意类型的私有数据:boolean,float,int,long,当然还有string,即便你的app进程被kill掉,这些数据依然完好,这个正是我们需要的。
你可以通过getSharedPreferences()方法或者getPreferences()方法来获得这个对象,当然前者需要你提供针对的app名称作为第一参数。
实例化这个对象之后可以通过这个对象调用类似getBoolean()的方法来获得结果,而写的步骤会复杂一点点。
你需要通过这个对象的edit()方法获得一个SharedPreferences.Editor对象,再使用后者的putBoolean()类似的方法来写入,最后需要调用commit()方法来提交你的私有数据。具体的实例如下,摘自android-sdk/docs/guide/topics/data/data-storage.html
[cc lang=”java”]public class Calc extends Activity {
public static final String PREFS_NAME = “MyPrefsFile”;

@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .

// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean(“silentMode”, false);
setSilent(silent);
}

@Override
protected void onStop(){
super.onStop();

// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(“silentMode”, mSilentMode);

// Commit the edits!
editor.commit();
}
}[/cc]


转载自:https://coolex.info/blog/242.html

目录
相关文章
|
30天前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
|
30天前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
|
3月前
|
存储 Kubernetes 容器
Kubernetes 存储选项:持久化卷与存储类
【8月更文第29天】随着容器化的普及,越来越多的应用程序需要持久化数据以保持状态信息。Kubernetes 提供了一套完整的解决方案来管理和配置持久化存储,包括持久卷 (Persistent Volume, PV)、持久卷声明 (Persistent Volume Claim, PVC) 和存储类 (StorageClass)。本文将详细介绍这些概念,并通过实际示例来演示如何在 Kubernetes 中配置存储。
237 1
|
3月前
|
NoSQL Redis
Redis 临时manifest修改问题之确保被持久化到磁盘如何解决
Redis 临时manifest修改问题之确保被持久化到磁盘如何解决
|
3月前
|
存储 缓存 分布式计算
|
3月前
|
SQL Java 数据管理
|
计算机视觉 索引 Windows
视频操作_01视频读写:视频读写+读取视频+保存视频
在OpenCV中我们要获取一个视频,需要创建一个VideoCapture对象
189 0
|
NoSQL MongoDB 数据库
读取通达信本地数据,并保存在mongodb数据库
读取通达信本地数据,并保存在mongodb数据库
530 0
|
开发者 Python Windows
文件的读取方式 | 学习笔记
快速学习 文件的读取方式
文件的读取方式 | 学习笔记
|
存储 分布式计算 Hadoop
Spark的数据读取与保存之文件系统类数据读取与保存
Spark的数据读取与保存之文件系统类数据读取与保存
345 0