Создайте пользовательский класс хеш-таблиц, подобный этому
package com.myapp.items;
import net.rim.device.api.util.Persistable;
import java.util.*;
public class MyAppHashtable extends Hashtable implements Persistable{
}
И измените свой код на
public class Preferences
{
private static PersistentObject persistentObject = PersistentStore.getPersistentObject(0x2759d6ff72264bdbL);
private static MyAppHashtable tbl = new MyAppHashtable ();
public static void storeLoginToken(String token)
{
token = removeCharAt(token,0);
token = removeCharAt(token,token.length()-1);
tbl.put("token", token);
persistentObject.setContents(tbl);
persistentObject.commit();
}
public static String getLoginToken()
{
MyAppHashtable tbl = (MyAppHashtable )persistentObject.getContents();
try
{
String token = tbl.get("token").toString();
System.out.println("Token = "+token);
return token;
}
catch(Exception e)
{
return null;
}
}
}
Это так, что мы придерживаемся следующей информации от RIM
Модель настойчивости BlackBerry
При использовании модели персистентности BlackBerry данные удаляются только в том случае, если хранилище содержит данные, принадлежащие удаленному приложению.
Например, если приложение сохраняет объект с пакетом com.mycompany.application.storage
, и никакое другое приложение на смартфоне BlackBerry не ссылается на пакет, постоянное хранилище и удаленное приложение удаляются.
То же самое верно, если объект обернут в контейнер, такой как Vector
. Даже если только один из элементов Vector
имеет имя пакета, которое не используется другими приложениями, весь Vector
удаляется из постоянного хранилища.
Примечание. Если приложение не хранит объекты с идентифицирующей структурой пакета (например, приложение, которое хранит объекты java.util.Vector
или javax.microedition.location.AddressInfo
), приложение должно создать и использовать класс, расширяющий Vector
чтобы определить, что Vector
принадлежит данному заявлению. При сохранении этого Vector
, который уникальным образом определяется его пакетом, вы гарантируете, что данные удаляются из постоянного хранилища при удалении приложения.
Это информация отсюда