Что такое Single в RxJava

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

Ответ

Single в RxJava — это одноэлементный Observable, который испускает либо успешный результат (onSuccess), либо ошибку (onError), но не поток данных. Подходит для операций с одним результатом (например, сетевые запросы).

Пример:

Single.fromCallable { fetchUserData() }  
    .subscribe(  
        { user -> showUser(user) },  
        { error -> showError(error) }  
    )  

Отличия от Observable:

  • Не поддерживает onNext + onComplete, только onSuccess.
  • Гарантирует только одно событие.
  • Нельзя преобразовать в Flowable (нет backpressure).

Используется для задач с четким единичным результатом (загрузка данных, сохранение в БД).