【发布时间】:2009-07-30 19:33:39
【问题描述】:
我需要创建一个应用程序,它应该包含两个存储,一个是持久存储,另一个是缓存存储。加载后,应用程序应检查用户名和密码与缓存存储数据,如果为空则应该检查持久存储。如何完成此任务?是否有任何单独的缓存概念,或者我们已将持久存储创建为缓存。请帮助我。
【问题讨论】:
标签: blackberry
我需要创建一个应用程序,它应该包含两个存储,一个是持久存储,另一个是缓存存储。加载后,应用程序应检查用户名和密码与缓存存储数据,如果为空则应该检查持久存储。如何完成此任务?是否有任何单独的缓存概念,或者我们已将持久存储创建为缓存。请帮助我。
【问题讨论】:
标签: blackberry
您可以使用RecordStore,它也是持久的,或者RuntimeStore,它在所有应用程序之间共享,但不是持久的。
或者,您可以使用一些自定义存储类来实现缓存功能, 存储,更新该类中的值,将其作为 Application 类的字段共享:
class Cache {
String mName = null;
String mPhone = null;
}
public class CacheApp extends UiApplication {
Cache mCache = null;
public static void main(String[] args) {
CacheApp app = new CacheApp();
app.enterEventDispatcher();
}
public CacheApp() {
initCache();
CacheScr scr = new CacheScr();
pushScreen(scr);
}
private void initCache() {
mCache = new Cache();
mCache.mName = "Name";
mCache.mPhone = "Phone";
}
}
class CacheScr extends MainScreen {
public CacheScr() {
CacheApp app = (CacheApp) UiApplication.getUiApplication();
String name = app.mCache.mName;
String phone = app.mCache.mPhone;
}
}
【讨论】:
Coldice 是正确的,但是我不明白为什么要使用与 PersistentStore(或 RecordStore)分开的存储来存储必须持久且可能共享的数据,而使用 RuntimeStore 存储共享但不持久的数据。这似乎只是增加了普通应用程序临时存储的复杂性。
【讨论】: