domingo, 23 de fevereiro de 2014

Compartilhar dados entre componentes Android

  Para compartilhar dados entre componentes de uma aplicação Android você deve primeiro decidir entre duas opções: persistir ou deixá-los na memória.
  Se optar pela persistência dos dados, tem as seguintes opções: preferences, files, SQLite DB e Content Provider.
  Se for deixá-los na memória, as opções são: através da dupla Intent/Bundle com os métodos putExtra/getXxxExtra, Uri (intent.setData/intent.getData), Singleton, variáveis/métodos públicos de classe (estáticos) e variáveis/métodos públicos de instância.
Observações:
1. Quando salvar - se for compartilhar os dados entre activities, lembre-se de que devem estar salvos no máximo até o método onPause, devido ao ciclo de vida das activities.
2. Se os dados forem compartilhados entre threads (ou outros recursos que usem threads, como AsyncTasks) e forem mutáveis, lembre-se de torná-los thread-safe.
3. Para enviar objetos por Intent/Bundle eles devem implementar Serializable ou Parcelable, para recuperar com getSerializableExtra ou getParcelableExtra, respectivamente.
4. Uma variação do Singleton é extender a classe Application, mas eu não aprecio muito essa opção.
5. Estude e entenda bem as diferenças entre as opções, as diferenças são às vezes sutis, mas com resultados nem tanto.
Essas são apenas algumas das opções, as mais básicas, mas devem ser úteis na maioria das necessidades do dia-a-dia.
Abraços

Nenhum comentário:

Postar um comentário