BlackBerry 应用程序开发者指南 第二卷:高级–第8章 存储持久数据
8
第8章 存储持久数据
持久数据选项
管理持久数据
内存管理以及持久对象
管理客户对象
持久数据选项
在BlackBerry设备上,以下面的方式可以存储数据:
使用MIDP记录存储.
使用BlackBerry持久存储模型.
如果你想让你的应用程序可以在多个与Java ME兼容的设备上运行,那么采用MIDP的实现.如果你编写应用程序仅仅为BlackBerry设备,使用BlackBerry持久存储模型,因为它提供了一个更为灵活有效的方式存储数据,
MIDP存储记录
javax.microedition.rms包提供了MIDP记录存储的实现.持久数据存储在RecordStore对象里.一个记录存储最大可以为64KB.
数据的离散单元称为记录.一个记录是一个字节数组,赋给它一个唯一标志数.
创建一个记录存储
调用openRecordStore().指定true来描述当记录存储不存在时应该创建此记录存储.
RecordStore store = RecordStore.openRecordStore("Contacts", true);
注:当从BlackBerry设备删除一个应用程序时,所有此应用程序创建的记录存储都会删除.每个在MIDlet包(suite)的记录存储都有一个唯一名.MIDlet仅可以访问一个在相同包里的由MIDlet创建的记录存储.
增加一个记录
调用addRecord().
int id = store.addRecord(_data.getBytes(), 0, data.length());
获取一个记录
调用getRecord(int, byte[], int).给本方法提供一个记录ID,字节数组,以及一个偏移作为参数.
byte[] data = new byte[store.getRecordSize(id)];
store.getRecord(id, data, 0);
String dataString = new String(data);
获取所有记录
打开存储,然后获取其迭代.
RecordStore store = RecordStore.openRecordStore("Contacts", false);
RecordEnumeration e = store.enumerateRecords(null, null, false);
enumerateRecords(RecordFilter filter, RecordComparator comparator, Boolean keepUpdated) 方法有如下参数:
参数
描述
filter
此参数指定一个RecordFilter对象获取记录存储结果的子集(如果为null,将返回所有记录存储).
comparator
此参数指定一个RecordComparator对象决定返回记录所在的顺序位置(如果为null.将返回无序的记录).
keepUpdated
此参数决定对于记录存储,迭代保持当前的改变.
BlackBerry持久存储
在MIDP中的记录存储(RecordStore)与BlackBerry持久模型(PersistentStore)有2处主要的区别.
特性
描述
数据存储
MIDP记录仅以字节数组存储数据.相比之下,BlackBerry API允许你在持久存储中保存任何对象.这样,查询存储数据就会比记录模型更快一些.为了存储一个自定义的对象类型,自定义类型的类必须要实现Persistable接口.
数据共享
在MIDP中,每个RecordStore属于单个MIDlet包,并且MIDlet也只能访问由相同包的MIDlet创建的记录存储.尽管如此,在BlackBerry持久模型中,数据可以在应用程序之间共享,在创建数据的离散应用程序中共享.代码签名指定只有被认证的应用程序才可以访问这些数据.
注:BlackBerry持久性API在手持设备软件3.6或后期版本可用.对于早期的版本,你必须使用MIDP记录存储.
保留存储空间
BlackBerry的存储空间是有限的.你应该小心设计你的程序,将需要存储持久数据的闪存数量最小化.
在一般的BlackBerry里,对于一个标准的BlackBerry应用程序,不需要的存储空间必须在所有应用程序之间共享,用来存储用户数据,包含日历约会,联系人,以及消息.
如果BlackBerry设备在一个小内存情况下操作,它有可能完成下面的动作释放内存空间:
从BlackBerry上删除以前的消息.
从BlackBerry 设备上删除超过一个星期的日历约会(如果启动了无线日历同步).
如果因低内存而BlackBerry设备删除了消息或者日历约会,那么在桌面消息程不会删除数据.为获的更多信息,参看96页的”内存管理以及持久对象”.
注:用户点击设备选项的Status可以查看当前可用的数据空间.
备份与恢复
在net.rim.device.api.synchronization包中,同步(synchronization)API允许你备份以及恢复BlackBerry设备上的持久数据.为获取更多信息,参看104页的”增加支持备份持久数据”.
安全
缺省的,BlackBerry上由RIM数字签名的应用程序可以访问持久存储上的数据,联系RIM获取关于控制数据访问的信息.
管理工具
在BES 3.5 Microsoft® Exchange SP2或 BES 2.2 [...]
Confach发表于 April 29, 2008 5:54 am | 留言 |文档
