Méthode recommandée : consolidation d'objets en groupes d'objets

L'une des plus courantes erreurs rencontrées par les développeurs d'applications est l'insuffisance d'identificateurs d'objets permanents. La quantité de mémoire flash du terminal BlackBerry® détermine le nombre fixe d'identificateurs d'objets permanents disponibles sur le système. Selon le type de structure de données choisi, les enregistrements stockés peuvent rapidement épuiser le nombre d'identificateurs d'objets permanents. Un objet permanent utilise un identificateur d'objets permanents et un identificateur d'objets. Un objet temporaire n'utilise qu'un identificateur d'objets.

Par exemple, un enregistrement contenant dix champs String, représentant des éléments tels que nom, numéro de téléphone et adresse, utilise onze identificateurs d'objets permanents : un pour l'objet Record et un pour chaque String. Si une application BlackBerry® Java Application conserve 3 000 enregistrements, l'application utilise 33 000 identificateurs d'objets permanents, nombre supérieur au nombre d'identificateurs d'objet permanents disponibles sur un terminal BlackBerry disposant de 16 Mo de mémoire flash.

Vous pouvez utiliser la classe net.rim.device.api.system.ObjectGroup pour consolider les identificateurs d'objets en un objet sous un groupe. À l'aide de l'exemple du paragraphe précédent, si vous regroupez l'enregistrement, il n'utilise qu'un identificateur d'objets permanents au lieu de onze. L'identificateur d'objets des champs String consolide sous l'identificateur d'objets Record.

Lorsque vous consolidez les identificateurs d'objets en un groupe, l'identificateur d'objets est en lecture seule. Vous devez dégrouper l'objet avant de pouvoir le modifier. Une fois les modifications terminées, regroupez de nouveau l'objet. Si vous tentez de modifier un objet regroupé sans d'abord le dégrouper, une exception ObjectGroupReadOnlyException est lancée.

Le dégroupement d'un objet affecte les performances. Le système crée une copie de l'objet regroupé et alloue des identificateurs à chaque objet de ce groupe. Par conséquent, les objets ne doivent être dégroupés que lorsque nécessaire.

Index


Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.