Ответ
В Android есть несколько способов передачи данных между Activity:
- Intent Extras (для простых данных):
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("key", "value")
startActivity(intent)
- Parcelable (для сложных объектов):
data class User(val name: String) : Parcelable {
// реализация Parcelable
}
intent.putExtra("user", user)
-
Shared Preferences (для небольших persistent данных)
-
Room/SQLite (для больших structured данных)
-
ViewModel + LiveData (рекомендуемый способ в архитектуре MVVM)
-
Singleton/Application class (глобальное хранилище, но осторожно с memory leaks)
-
EventBus/RxJava (реактивные подходы)
-
Content Providers (для межпроцессного взаимодействия)
Для простых случаев хватит Intent, для сложных - лучше ViewModel или Room. Избегайте синглтонов и глобальных хранилищ без необходимости.