¿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.
- ¿Puedo crear un método de extensión Kotlin para agregar una suscripción rxJava a una suscripción compuesta?
- Cómo notificar a Observable cuando finalice CountdownTimer
- Android: uso de generics para tener 1 llamada de actualización de RxJava que devuelve varios types usando la misma interfaz
- llamar parte de la secuencia una vez con múltiples suscriptores?
- Usando RxJava para unir datos locales con datos remotos (o en caching)
Y si necesito desecharlo, ¿cuál es la mejor manera y por qué?
- Kotlin cuádruple, quíntuple, etc. para desestructurar
- Reaccionar a la llamada de actualización
- Observable.combineLa causa de error más reciente después de actualizar a RxJava 2.xx - no se puede inferir el tipo
- RxJava cómo agrupar elementos de una list en Map <Key, List <Value >>
- RX java / Android cómo lograr este brindis en cada clic usando el operador de rebote
- OnComplete nunca se llamó con toSortedList () y groupBy ()
- Clasificación de objects alfanuméricamente
- RXJava ... emiten un observable cada segundo
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
- ClassCastException con el método bindService de ServiceTestRule
- Especificación Jpa para encontrar un subset del valor del campo