Какие проблемы могут быть при отправке данных с Activity

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

Ответ

Отправка данных из Activity может привести к нескольким проблемам:

  1. Утечки памяти – если Activity уничтожается (например, при повороте экрана), а асинхронная операция (например, сетевой запрос) продолжает работать, это может вызвать утечку.

  2. Потеря данных – если Activity пересоздается, несохраненные данные (например, введенные пользователем) могут быть потеряны.

  3. Блокировка UI – отправка данных в основном потоке приведет к ANR.

Пример решения (отправка через ViewModel и корутины):

class MyViewModel : ViewModel() {
    fun sendData(data: String) = viewModelScope.launch {
        // Отправка в фоне
        withContext(Dispatchers.IO) { 
            apiService.send(data) 
        }
    }
}

Дополнительно:

  • Используйте onSaveInstanceState() для временных данных.
  • Для сложных сценариев – LiveData/Flow + сохранение состояния.