Sobes.tech
Junior — Middle

O que deve ser considerado ao trocar um volume significativo de dados entre fragmentos usando um objeto Bundle?

sobes.tech IA

Resposta da IA

Ao transferir grandes volumes de dados entre fragmentos através de um objeto Bundle, deve-se ter em conta:

  • Limite de tamanho: Bundle tem uma limitação de tamanho (normalmente cerca de 1 MB), excedê-la pode levar a erros ou falhas.
  • Serialização de dados: Todos os dados devem ser serializáveis (por exemplo, Parcelable ou Serializable) para serem transmitidos corretamente.
  • Desempenho: Transferir grandes quantidades de dados pode desacelerar a aplicação e aumentar o tempo de carregamento do fragmento.
  • Alternativas:
    • Usar ViewModel compartilhados com LiveData para trocar dados entre fragmentos.
    • Armazenar dados numa base de dados ou cache e transmitir apenas os identificadores.

Exemplo de transferência de pequenos dados via Bundle:

val bundle = Bundle().apply {
    putString("key", "value")
}
fragment.arguments = bundle

Para dados grandes, é melhor usar ViewModel ou outros mecanismos.