#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")
Но это относится только к истинным одиночкам, а не к каким-либо другим компонентам с ограниченной областью действия.