Junior — Middle
What should be considered when exchanging a significant amount of data between fragments using a Bundle object?
sobes.tech AI
Answer from AI
When passing large amounts of data between fragments via a Bundle object, consider:
- Size limitation:
Bundlehas a size limit (usually around 1 MB), exceeding which can lead to errors or crashes. - Data serialization: All data must be serializable (e.g.,
ParcelableorSerializable) to be transmitted correctly. - Performance: Transferring large data can slow down the app and increase fragment load times.
- Alternatives:
- Use shared ViewModel with
LiveDatafor data exchange between fragments. - Store data in a database or cache and pass only identifiers.
- Use shared ViewModel with
Example of passing small data via Bundle:
val bundle = Bundle().apply {
putString("key", "value")
}
fragment.arguments = bundle
For larger data, it is better to use ViewModel or other mechanisms.