Утилизировать цепочку RxJava 2 для одиночек

#android #singleton #rx-java2

#Android #синглтон #rx-java2

Вопрос:

У меня есть несколько цепочек RxJava 2 для одноэлементного приложения для Android. Теперь Android Studio теперь показывает предупреждения для этого типа кода:

           myObservable
          .subscribe { doStuff() }
  

Результат подписки не используется

Я предполагаю, что это сделано при условии, что большинство цепочек будут использоваться где-то, на что влияет жизненный цикл и его общее сообщение. Но .. для синглтона, у которого нет жизненного цикла, добавит ли это какую-то ценность для этого:

 lateinit var disposable : Disposable 

 disposable = myObservable
              .doOnTerminate { disposable.dispose() }
              .subscribe { doStuff() }
  

Или просто лучше подавить предупреждение, поскольку RxJava 2 утилизирует цепочку после завершения?

Я предполагаю, что мне следует просто подавить, но я хотел бы получить проверку.

В любом случае, было бы по-другому, если бы это был BehaviorSubject? Я также предполагаю, что это не так.

Ответ №1:

Поздний ответ, то, что вы уже выяснили самостоятельно:

Да, вы можете просто игнорировать это предупреждение в одноэлементных классах именно потому, что одиночные элементы не имеют явного жизненного цикла.

Одиночки будут удалены вместе с самим приложением, а это значит, что все будет удалено из памяти.

Просто аннотируйте одноэлементный класс с помощью:

 @SuppressLint("CheckResult")
  

Но это относится только к истинным одиночкам, а не к каким-либо другим компонентам с ограниченной областью действия.