Bewährtes Verfahren: Konsolidieren von Objekten zu Objektgruppen

Einer der häufigsten Fehler, denen Anwendungsentwickler begegnen, ist der Mangel an permanenten Objekt-Handles. Die Menge des Flash-Speichers auf dem BlackBerry®-Gerät bestimmt die feste Anzahl von permanenten Objekt-Handles, die im System verfügbar sind. Abhängig von der Datenstrukturauswahl können gespeicherte Datensätze schnell die Anzahl der permanenten Objekt-Handles ausschöpfen. Ein permanentes Objekt verwendet ein permanentes Objekt-Handle und ein Objekt-Handle. Ein vergängliches Objekt verwendet nur ein Objekt-Handle.

Ein Datensatz, der zehn String-Felder enthält, die für Elemente wie Name, Telefonnummer und Adresse stehen, verwendet beispielsweise 11 permanente Objekt-Handles, einen für das Datensatzobjekt und einen für jeden String. Wenn in einer BlackBerry® Java Application 3.000 Datensätze gespeichert sind, nutzt die Anwendung 33.000 permanente Objekt-Handles, was die Anzahl der verfügbaren permanenten Objekt-Handles auf einem BlackBerry-Gerät mit 16 MB Flash-Speicher übersteigt.

Mit der net.rim.device.api.system.ObjectGroup-Klasse können Sie die Objekt-Handles für ein Objekt zu einer Gruppe konsolidieren. Für das obige Beispiel ergibt sich: Wenn Sie den Datensatz gruppieren, belegt der Datensatz nur noch einen permanenten Objekt-Handle (statt wie bisher elf). Die Objekt-Handles für die String-Felder werden unter dem Objekt-Handle des Datensatzes konsolidiert.

Wenn Sie Objekt-Handles zu einer Gruppe konsolidieren, ist das Objekt-Handle schreibgeschützt. Falls Sie Änderungen am Objekt vornehmen möchten, müssen Sie die Gruppierung zuerst aufheben. Sobald alle Änderungen erledigt sind, gruppieren Sie das Objekt wieder. Wenn Sie versuchen, ein gruppiertes Objekt zu ändern, ohne die Gruppierung zuerst aufzuheben, wird die Ausnahme ObjectGroupReadOnlyException ausgelöst.

Das Aufheben der Gruppierung eines Objekts wirkt sich auf die Leistung aus. Das System erstellt eine Kopie des gruppierten Objekts und weist den einzelnen Objekten in der Gruppe jeweils einen Handle zu. Deshalb sollten Sie die Gruppierung von Objekten nur dann aufheben, wenn dies unbedingt nötig ist.

Index


Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.