I am using persistent object in blackberry to store config details specific to the app. Here is how I am implementing the class
public class Preferences implements Persistable
{
private static PersistentObject persistentObject = PersistentStore.getPersistentObject(0x2759d6ff72264bdbL);
private static Hashtable tbl = new Hashtable();
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()
{
Hashtable tbl = (Hashtable)persistentObject.getContents();
try
{
String token = tbl.get("token").toString();
System.out.println("Token = "+token);
return token;
}
catch(Exception e)
{
return null;
}
}
}
But if I uninstall/delete the app these stored values are not getting deleted. When I installs the app for next time the app is fetching the old stored values.
How can i do this properly in blackberry?
Thanks
Create a custom hashtable class like this
And change your code to
This is so that we adhere to the following info from RIM
The BlackBerry persistence model
When you use the BlackBerry persistence model, data is only deleted if the store contains data that belongs to the removed application.
For example, if an application stores an object with a package called
com.mycompany.application.storageand no other application on the BlackBerry smartphone makes reference to the package, the persistent store and the removed application are deleted.The same is true if the object is wrapped in a container such as a
Vector. Even if only one of the elements of theVectorhas a package name that is not used by other applications, the entireVectoris removed from the persistent store.Note: If the application does not store any objects with an identifying package structure, (for example, an application that stores
java.util.Vectororjavax.microedition.location.AddressInfoobjects), the application should create and use a class that extendsVectorin order to identify thatVectorbelongs to the given application. When you store thisVector, which is identified uniquely by its package, you guarantee that the data is removed from the persistent store when the application is removed.This info is from here