Procedura consigliata: consolidazione degli oggetti in gruppi di oggetti

Uno degli errori più comuni segnalato dagli sviluppatori delle applicazioni è un esaurimento degli handle di oggetti permanenti. La quantità di memoria flash sul dispositivo BlackBerry® determina il numero corretto di handle di oggetti permanenti disponibili nel sistema. In base alla selezione della struttura dei dati, i record archiviati possono esaurire rapidamente il numero di handle di oggetti permanenti. Un oggetto permanente utilizza un handle di oggetti permanenti e un handle di oggetto. Un oggetto transitorio utilizza solo un handle di oggetto.

Ad esempio, un record contenente dieci campi String che rappresentano voci come un nome, un numero di telefono e un indirizzo, utilizza 11 handle di oggetti permanenti, uno per l'oggetto record ed uno per ogni String. Se una BlackBerry® Java Application presenta 3000 record, l'applicazione utilizza 33.000 handle di oggetti permanenti, superando il numero di handle di oggetti permanenti disponibili su un dispositivo BlackBerry con una memoria flash da 16 MB.

È possibile utilizzare la classe net.rim.device.api.system.ObjectGroup per consolidare gli handle di oggetto per un oggetto in un gruppo. Utilizzando l'esempio contenuto nel paragrafo precedente, se si raggruppa il record, esso utilizza un handle di oggetti permanenti anziché 11. L'oggetto gestisce i campi String da consolidare all'interno dell'handle di oggetti record.

Quando si consolidano gli handle di oggetto in un gruppo, l'handle di oggetto è di sola lettura. Prima di poter modificare l'oggetto, è necessario separarlo dal gruppo. Dopo aver apportato le modifiche, raggruppare di nuovo l'oggetto. Se si tenta di modificare un oggetto raggruppato senza prima separarlo dal gruppo, viene eseguito un ObjectGroupReadOnlyException.

La separazione di un oggetto da un gruppo ha un impatto sulle prestazioni. Il sistema crea una copia dell'oggetto raggruppato e assegna gli handle a ciascuno degli oggetti contenuti nel gruppo. Pertanto gli oggetti dovrebbero essere separati dal gruppo solo quando necessario.

Indice analitico


Le informazioni sono state utili? Inviateci i vostri commenti.