Frage

Ich möchte eine einfache CRUD Anwendung zu testen, die Daten erstellen Funktionen des Blackberry-Handling.

Wie erstelle ich eine einfache Sparfunktion?

War es hilfreich?

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 

@see: http://docs.blackberry.com/en /developers/deliverables/17952/Storing_objects_persistently_1219782_11.jsp

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top