我有一個是第一次安裝應用程序時,與註冊屏幕啓動(應用程序負載)黑莓應用程序。稍後,應用程序將加載主屏幕。註冊屏幕僅在第一次加載時出現。我在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