¿Pasar lambdas a Observable.subscribe en kotlin dará como resultado pérdidas de memory?

Vea el siguiente código de kotlin:

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

Aquí estoy pasando una expresión lambda en el método de suscripción en lugar de una class interna anónima. Entonces, ¿es necesario llamar a disposable.dispose() para evitar pérdidas de memory? O la expresión lambda no mantendrá una reference implícita a la instancia de la class MainActivity.

Y si necesito desecharlo, ¿cuál es la mejor manera y por qué?

Agregué un registrador al Observable.subscribe () de la siguiente manera:

 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 } } } 

y notó que incluso después de salir de la aplicación presionando la tecla de retroceso, el observable seguía funcionando. Así que agregué el siguiente código a onDestroy ():

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

y ahora todo está funcionando como se esperaba

  • Conmutación de Observables
  • Formulario de inicio de session con request de repetición en rxJava y Retrofit
  • Repetir acciones en estado con RxJava
  • Kolin - Lista de artículos para el artículo de lists
  • Reaccionar a la llamada de actualización
  • RxJava - ¿Entradas de keyboard de contrapresión?
  • IncompatibleClassChangeError: Class 'java.lang.VirtualMachineError' no implementa la interfaz 'java.lang.CharSequence'
  • Kotlin: cómo henetworkingar del suscriptor de RxJava
  • rx.Scheduler no se puede proporcionar sin un método @ Provides- o @ Produces-anotado
  • Función de extensión de llamada dentro de la class Java como cualquier operador de RX
  • RxJava (Kotlin), Observable.amb y PublishSubject no están disparando