Пройдет ли lambdas к Observable.subscribe в kotlin приведет к утечкам памяти?

См. Следующий код kotlin:

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { val disposable = Observable.interval(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()) .subscribe { textView.text = it.toString } } } 

Здесь я передаю лямбда-выражение в методе подписки вместо анонимных внутренних классов. Так требуется ли вызвать disposable.dispose() , чтобы предотвратить утечку памяти? Или выражение лямбда не будет содержать неявной ссылки на экземпляр класса MainActivity.

И если мне это нужно, это лучший способ и почему?

Я добавил регистратор в Observable.subscribe () следующим образом:

 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { val disposable = Observable.interval(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()).subscribe { Log.d(TAG, "Interval:" + it.toString()) textView.text = it.toString } } } 

и заметил, что даже после выхода из приложения, нажав клавишу «назад», наблюдаемый продолжает работать. Поэтому я добавил следующий код в onDestroy ():

 override fun onDestroy() { disposable.dispose() super.onDestroy() } 

и теперь все работает как ожидалось

Intereting Posts
Может ли целое число в Котлине быть равно математическому выражению? Как представлять теги веб-компонентов в инфраструктурах Kotlin html? Невозможно разрешить зависимости для задачи assembleAndroidTest с плагином Android Gradle 3.0.1 Конвертировать бесконечно бегущий Runnable из java в kotlin Ожидается ли, что я могу вызвать функцию с объектом-приемником, передав объект-приемник в качестве первого аргумента? Kotlin TypeToken Ошибка «Неразрешенная ссылка» firebase db: модели с переданными свойствами Котлина Как экземпляр объекта в Котлине? Удалить слушателя Firebase не работает Android – объявлять и использовать представления в Котлине Могу ли я вызвать методы внутри шаблона строки в Котлине? Почему инициализаторы свойств не вызывают пользовательский сеттер? Как получить родительский класс внутри анонимного класса в kotlin Kotlin – Возможно ли инициализировать объект-компаньон перед блоком init в классе? Недействительный Mutable Map