es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

RxJava Android uso correcto de disposable.

Encuentro la manera correcta de usar rxJava en Android y veo muchos ejemplos como

public class MainActivity extends AppCompatActivity {

<pre><code>CompositeDisposable compositeDisposable = new CompositeDisposable();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    compositeDisposable.add(Single.fromCallable(
            () -> {
                //some work here
                return "resultado de algún trabajo";
            })
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(r -> Log.e("MisLogs",r)));
}

@Override
protected void onDestroy() {
    super.onDestroy();
    compositeDisposable.dispose();
}
</code></pre>

<p>}

Pero, ¿es correcto? Me refiero a si es una fuga de memoria – ¿se guarda el enlace al observador en compositeDisposable que no se borra hasta que la actividad no se destruye?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Android y rx-java, puedo confirmar que el uso de compositeDisposable para manejar los disposables es una buena práctica en RxJava para el desarrollo en Android. En el fragmento de código proporcionado, el uso de compositeDisposable para agregar y liberar el observador Single es una forma correcta de manejar las suscripciones en RxJava.

    El compositeDisposable permite la fácil eliminación de todas las suscripciones cuando se destruye la actividad, evitando posibles fugas de memoria. El Disposable devuelto desde la suscripción Single se agrega al compositeDisposable y, cuando se destruye la actividad, se llama al método dispose del compositeDisposable para liberar todas las suscripciones.

    Por lo tanto, el fragmento de código proporcionado es correcto y sigue las mejores prácticas en RxJava para el desarrollo en Android.

Comments are closed.