BlackBerry 应用程序开发者指南 第二卷:高级--第8章 存储持久数据 |
|||
| 作者:佚名 来源:本站整理 发布时间:2008-3-15 1:42:02 | |||
创建一个唯一的long键
1. 在BlackBerry IDE里,输入一个字符串,例如com.rim.samples.docs.userinfo. 2. 选择此字符串. 3. 右击,然后单击Convert 'com.rim.samples.docs.userinfo' to long. long值将会出现.
持久存储数据
为了将数据保存到持久存储里,调用PersistentObject上的setContents().此方法用新的值替代已存在的值.调用commit()保存到持久存储里,
如果你有许多对象需要提交到存储里,你可以以一个批事务的形式提交它们.为了实现此,调用PersistentStore.getSynchObject()方法获取持久存储监视器紧锁对象.然后同步对象,如果必要,调用commit()方法.当你释放监视对象的同步时,你的所有事务一次性被提交.如果批处理有任何提交失败,整个批提交也失败.当你同步监视器对象时,如果你调用forceCommit(),这个对象立即提交,并且它不再时批事务中的一部分了. 获取持久数据
调用 PersistentObject 上的getContents() 方法. 将 PersistentObject.getContents()返回的对象显式的转化为你需要的类型.
删除一个数据库
为了删除一个数据库,调用PersistentStore.destroyPersistentObject().提供一个PersistentObject的唯一键作为参数, 为了删除单独的数据,把它们简单的当成普通数据看待,并删除这些数据的引用.垃圾数据会自动回收。 代码实例
本代码实例描述了如何为用户创建一个应用程序来查看它们当前的用户名和密码,输入一个新的用户名和密码,然后保存变化. 例: UserInfo.java /** * UserInfo.java * Copyright (C) 2001-2005 Research In Motion Limited. All rights reserved. */ package com.rim.samples.docs.userinfo; import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.system.*; import net.rim.device.api.util.*; import java.util.*; import net.rim.device.api.i18n.*; import com.rim.samples.docs.baseapp.*; import com.rim.samples.docs.resource.*; public class UserInfo extends BaseApp implements UserInfoResource,KeyListener, TrackwheelListener { private static PersistentObject store; private static ResourceBundle _resources; private AutoTextEditField usernamefield; private PasswordEditField passwordfield; private AutoTextEditField currentusernamefield; private AutoTextEditField currentpasswordfield; static { _resources = ResourceBundle.getBundle( UserInfoResource.BUNDLE_ID, UserInfoResource.BUNDLE_NAME); store = PersistentStore.getPersistentObject(0xa1a569278238dad2L); } private MenuItem saveItem = new MenuItem( _resources.getString(MENUITEM_SAVE), 110, 10) { public void run() { String username = usernamefield.getText(); String password = passwordfield.getText(); String[] userinfo = {username, password}; synchronized(store) { store.setContents(userinfo); store.commit(); } Dialog.inform(_resources.getString(APP_SUCCESS)); usernamefield.setText(null); passwordfield.setText(null); } };
|
|||
| [] [返回上一页] [打 印] | |||
文章评论 |
|||
