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 | 留言 |文档
最新留言
- 高超:还有我按照http://www.52blackberry.com/thread-291671-1-1.html这个网站的方法实验过,还是不可以,不知道哪里做的不对
- 高超:说实话我没有看懂说的是什么,但是我很想像楼主那样使用SB的应用,我想楼主详细的告诉我应该怎么操作才能使用。谢谢 另:我没有使用移动的SB,那又点贵,不知道楼主的方法是不是需要移动推入,我使用的是blackberry的8520,支持WIFI 等待回复谢谢
- nio:ESS和MDS设置完毕之后,还是无法接收邮件,请较如下: MDS设置中的 Email.userId是写邮箱登陆用户名? Email.address需要修改么? Email.personal需要修改么? ESS设置中的 Email.personal跟MDS中的Email.personal有关系吗? Email.address跟MDS中的Email.address有关系吗? 以上两项应该设置成什么? ps:我用的是126的邮箱,用本地的outlook没有问题~
- 涂鸦:姜还是老的辣。
- Kirsten30MG:A lot of professors demand to examine the writing technique, hence, people have to choose dissertation service to buy free dissertation. In such way people show academic level. And as well you should get thesis.
