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:
Bundletem 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,
ParcelableouSerializable) 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
LiveDatapara trocar dados entre fragmentos. - Armazenar dados numa base de dados ou cache e transmitir apenas os identificadores.
- Usar ViewModel compartilhados com
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.