从Asyntask传递到RxJava

从Asyntask传递到RxJava,java,android,Java,Android,我正在开发一个小项目,我想实现RxJava库,而不是Asyntask,我知道它在反应式库方面有一些缺点 我刚开始使用反应式库几天,但我还没有为自己开发这个库的知识 我的代码是: private class EjecutaSegundoPlano extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... string

我正在开发一个小项目,我想实现RxJava库,而不是Asyntask,我知道它在反应式库方面有一些缺点

我刚开始使用反应式库几天,但我还没有为自己开发这个库的知识

我的代码是:

  private class EjecutaSegundoPlano extends AsyncTask<String, String, String> {

        @Override
        protected String doInBackground(String... strings) {

            Location puntoOrigen = null;
            Location puntoDestino = null;

            Context context = getApplicationContext();
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

            if (cm != null) {

                final NetworkInfo ni = cm.getActiveNetworkInfo();

                if (ni == null || !ni.isConnected() || !ni.isAvailable()) {
                    return getString(R.string.error_conexion);

                } else {
                    // return (ni.isConnected() && (ni.getType() == ConnectivityManager.TYPE_WIFI || ni.getType() == ConnectivityManager.TYPE_MOBILE));

                    try {
                        puntoOrigen = OptimizacionBusqueda.busca(direccionOrigen);

                        if (puntoOrigen == null) {
                            return getString(R.string.error_origen);
                        }

                        puntoDestino = OptimizacionBusqueda.busca(direccionDestino);

                        if (puntoDestino == null) {
                            return getString(R.string.error_destino);
                        }

                    } catch (Exception e) {
                        return getString(R.string.error_red);
                    }
                    ruta.mejorRuta(puntoOrigen, puntoDestino, lineas);
                }
            }
            return null;
        }
        protected void onPostExecute(String Resultado){

            barraProgreso=null;

            enviar.setAlpha(1);
            enviar.setEnabled(true);
            muestraRuta();
        }


私有类EjecutaSegundoPlano扩展异步任务{
@凌驾
受保护的字符串背景(字符串…字符串){
位置puntoOrigen=null;
位置puntoDestino=null;
Context=getApplicationContext();
ConnectivityManager cm=(ConnectivityManager)context.getSystemService(context.CONNECTIVITY_服务);
如果(cm!=null){
final NetworkInfo ni=cm.getActiveNetworkInfo();
如果(ni==null | | |!ni.isConnected()| |!ni.isAvailable()){
返回getString(R.string.error\u conexion);
}否则{
//返回(ni.isConnected()&(ni.getType()==ConnectivityManager.TYPE|u WIFI | ni.getType()==ConnectivityManager.TYPE|u MOBILE));
试一试{
puntoOrigen=OptimizacionBusqueda.busca(direccionOrigen);
if(puntoOrigen==null){
返回getString(R.string.error\u origen);
}
puntoDestino=OptimizacionBusqueda.busca(direccionDestino);
if(puntoDestino==null){
返回getString(R.string.error\u destino);
}
}捕获(例外e){
返回getString(R.string.error\u red);
}
马约鲁塔(puntoOrigen、Puntotodestino、lineas);
}
}
返回null;
}
受保护的void onPostExecute(字符串Resultado){
barraProgreso=null;
环境:setAlpha(1);
enviar.setEnabled(真);
muestaruta();
}