Wie verwende ich die persistenten Objektspeicher in Blackberry?
-
25-09-2019 - |
Frage
Ich möchte eine einfache CRUD Anwendung zu testen, die Daten erstellen Funktionen des Blackberry-Handling.
Wie erstelle ich eine einfache Sparfunktion?
Lösung
In diesem Beispiel mir einen Vektor in dem persistenten Speicher zu speichern.
Sie haben mit einem Speicher-ID zu kommen, die lange vom Typ sein sollte. Ich schaffe dies in der Regel durch concating den vollständig qualifizierten Klassen Application Name zu einem gewissen Zeichenfolge, die es einzigartig in meiner Anwendung macht.
//class Fields...
//Use the application fully qualified name so that you don't have store collisions.
static String ApplicaitonID = Application.getApplication().getClass().getName();
static String STORE_NAME = "myTestStore_V1";
long storeId = StringUtilities.stringHashToLong( ApplicationID + STORE_NAME );
private static PersistentObject myStoredObject;
private static ContentProtectedVector myObjects;
//End class fields.
Beispiel eines Vektors aus dem Speicher geladen:
myStoredObject = PersistentStore.getPersistentObject( storeId );
myObjects = (ContentProtectedVector) myStoredObject.getContents();
//Print the number of objects in storeage:
System.out.println( myObjects.size() );
//Insert an element and update the store on "disk"...
myObjects.addElement( "New String" );
myStoredObject.setContents(myObjects);
myStoredObject.commit();
Beispiel für diesen Speicher zu initialisieren und auf der Festplatte zum ersten Mal zu speichern:
myStoredObject = PersistentStore.getPersistentObject( storeId );
myObjects = (ContentProtectedVector) myStoredObject.getContents();
if(myObjects == null)
myObjects = new ContentProtectedVector();
myStoredObject.setContents(myObjects);
myStoredObject.commit();
Wenn Sie Änderungen zu übernehmen wollen (auch bekannt als Änderungen speichern auf der Festplatte), müssen Sie die beiden unteren Zeilen wiederholen. setContents (OBJ); und Commit ().
Sie können folgende speichern, ohne etwas Besonderes zu tun:
java.lang.Boolean java.lang.Byte java.lang.Character java.lang.Integer java.lang.Long java.lang.Object java.lang.Short java.lang.String java.util.Vector java.util.Hashtable
Ihre eigene Klassen zu speichern, sie (und alle Unterklassen) haben die „Persistable“ Schnittstelle zu implementieren. Ich empfehle, dass Sie dies tun, da diese speichert automatisch gereinigt Steh auf, wenn die Anwendung deinstalliert wird. Dies liegt daran, dass die OS gespeichert säubern Objekte auf, wenn „alle“ verwies auf Klassennamen im Laden nicht mehr eine Anwendung zugeordnet sind. Also, wenn Ihr Geschäft ist Strings nur mit, es wird nie bekommen aufgeräumt.