我有一个是第一次安装应用程序时,与注册屏幕启动(应用程序负载)黑莓应用程序。稍后,应用程序将加载主屏幕。注册屏幕仅在第一次加载时出现。我在PersistentStore
存储boolean
值达到这一点。如果该值存在,则注册屏幕不会出现。删除持久存储的数据时应用程序被卸载/删除
PersistentStoreHelper.persistentHashtable.put("flagged",Boolean.TRUE);
PersistentStoreHelper.persistentObject.commit();
UiApplication.getUiApplication().pushScreen(new MyScreen());
我知道的事实,为了删除删除/卸载应用程序的持久性存储,我必须作出的哈希表我自己的一个子类,因此,我已宣布了哈希表中的一个单独的类:
public class PersistentStoreHelper extends Hashtable implements Persistable{
public static PersistentObject persistentObject;
public static final long KEY = 0x9df9f961bc6d6daL;
public static Hashtable persistentHashtable;
}
然而,这并没有帮助和标志的boolean
值不是从PersistentStore
清除。请指教。
EDIT:当我改变上述PersistentStoreHelper类
public static PersistentObject persistentObject =
PersistentStore.getPersistentObject(KEY);
和从类B,其中被保存boolean
值除去
PersistentStoreHelper.persistentObject =
PersistentStore.getPersistentObject(PersistentStoreHelper.KEY);
,我观察到该boolean
值被删除每个应用程序是封闭的时间。这应该不会发生,只有在应用程序被删除/卸载的情况下才能删除该值。任何指针?
感谢@Nate。我正在努力解决它。以前我以下面的方式调用getContents: 'if(PersistentStoreHelper.persistentObject.getContents()== null) { \t PersistentStoreHelper.persistentHashtable = new Hashtable(); \t PersistentStoreHelper.persistentObject.setContents(PersistentStoreHelper.persistentHashtable);其他{ \t PersistentStoreHelper.persistentHashtable =(Hashtable)PersistentStoreHelper。我不能编辑:'persistentHashtable =(MyAppsHashtable)persistentObject.getContents();'怎么去? – Sarah
@Sarah,请参阅上面的答案我的第二次更新。谢谢。 – Nate
我一直在与您提供的编辑工作,但它没有帮助;我得到一个类型不匹配:'不能从Hashtable转换为PersistentStoreHelper.MyAppsHashtable'。你能帮忙吗?编辑︰问题现在在'PersistentStoreHelper.persistentObject.setContents(PersistentStoreHelper.persistentHashtable);'。此行提供了一个错误:persistentHashtable无法解析或不是字段。 – Sarah