Какие знаешь способы передать данные между Activity

«Какие знаешь способы передать данные между Activity» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android есть несколько способов передачи данных между Activity:

  1. Intent Extras (для простых данных):
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("key", "value")
startActivity(intent)
  1. Parcelable (для сложных объектов):
data class User(val name: String) : Parcelable {
    // реализация Parcelable
}
intent.putExtra("user", user)
  1. Shared Preferences (для небольших persistent данных)

  2. Room/SQLite (для больших structured данных)

  3. ViewModel + LiveData (рекомендуемый способ в архитектуре MVVM)

  4. Singleton/Application class (глобальное хранилище, но осторожно с memory leaks)

  5. EventBus/RxJava (реактивные подходы)

  6. Content Providers (для межпроцессного взаимодействия)

Для простых случаев хватит Intent, для сложных - лучше ViewModel или Room. Избегайте синглтонов и глобальных хранилищ без необходимости.