AsyncTask

Uso de AsyncTask

Hilos y procesos en Android

4.- Tareas en segundo plano con AsyncTask

AsyncTask en Android

Ejemplo: Descargar un fichero de Internet

Creación de la aplicación con Android Studio 4.1 y SDK 28:

– Dar permisos en el manifiesto

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.conexionasincrona">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission-sdk-23 android:name="android.permission.INTERNET" />

    <application
        android:usesCleartextTraffic="true"






    </application>

</manifest>

– Usar view binding

build.gradle:

buildFeatures {
    viewBinding true
}

MainActivity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private ActivityMainBinding binding;
    private static final int REQUEST_CONNECT = 1;
    long inicio, fin;
    TareaAsincrona tareaAsincrona;
    URL url;

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

        binding = ActivityMainBinding.inflate(getLayoutInflater());
        View view = binding.getRoot();
        setContentView(view);

        binding.button.setOnClickListener(this);
    }

– Creación de la tarea asíncrona usando AsyncTask

public class TareaAsincrona extends AsyncTask<URL, Void, Resultado> {

}

– Descargar un fichero usando Java.net

public class Resultado {
    private int codigo; //indica el código de estado devuelto por el servidor web
    private String mensaje; //información del error
    private String contenido; //fichero descargado

    public int getCodigo() {
        return codigo;
    }
    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }
    public String getMensaje() {
        return mensaje;
    }
    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }
    public String getContenido() {
        return contenido;
    }
    public void setContenido(String contenido) {
        this.contenido = contenido;
    }
}

 

public class Conexion {

    public static Resultado conectarJava(URL url) throws IOException {



    }
}

– Error: Cleartext http not permitted:

usesCleartextTraffic

cleartext http traffic not permitted

– Prueba:

Acceso a un servidor web en la red local

Acceso a un servidor web en Internet: http://dam.org.es/ficheros/frases.html

Errores: página no encontrada, servidor caído, etc

Deja una respuesta