1

アプリが最初にインストールされたときに、登録画面で (アプリの読み込み) を開始する BlackBerry アプリケーションがあります。後で、アプリはホーム画面で読み込まれます。登録画面は初回ロード時のみ表示されます。booleanに値を格納することでこれを達成していますPersistentStore。値が存在する場合、登録画面は表示されません。

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、flag の値は からクリアされませんPersistentStore。ご意見をお聞かせください。


編集: 上記のPersistentStoreHelperクラスを次のように変更すると

public static PersistentObject persistentObject =
    PersistentStore.getPersistentObject(KEY);

そして取り除く

PersistentStoreHelper.persistentObject = 
    PersistentStore.getPersistentObject(PersistentStoreHelper.KEY);

boolean値が保存されているクラス B からboolean、アプリが閉じられるたびに値が削除されることがわかります。これは発生すべきではなく、アプリが削除/アンインストールされた場合にのみ値を削除する必要があります。ポインタはありますか?

4

1 に答える 1