Android – AsyncTask

MIKE b


Ahora que nos encontramos desarrollando aplicaciones móviles para iOS y Android, nos hemos topado en Android con demasiadas excepciones. Básicamente se deben a que se supera el tiempo máximo permitido por el SO (La excepción que manda es “StrictMode policy violation”).

Para solventar el problema, básicamente recomendamos realizar las siguientes actividades utilizando “AsyncTask”:

  • Cargar archivos,
  • Cargar imagenes,
  • Conectarse a API’s,
  • Abrir, leer o guardar en la BD.

Un ejemplo sencillo de un “AsyncTask” para abrir la BD:

public class MyHelper extends SQLiteOpenHelper {
  private MyDatabaseTask myDatabaseTask;
  //TODO all your own variables
 
  public void open() {
    try {
      myDatabaseTask = new MyDatabaseTask(this);
      myDatabaseTask.execute();
    }
    catch (Exception e){
      Log.e(TAG, e.getMessage());
    }
  }
 
  //TODO all your own methods
 
  private class MyDatabaseTask extends AsyncTask<Void, Void, SQLiteDatabase>{
    SQLiteOpenHelper sqliteOpenHelper;
 
    public MyDatabaseTask(SQLiteOpenHelper sqliteOpenHelper){
      this.sqliteOpenHelper = sqliteOpenHelper;
    }
 
    @Override
    protected SQLiteDatabase doInBackground(Void... params) {
      return sqliteOpenHelper.getWritableDatabase();
    }
 
    @Override
    protected void onPostExecute(SQLiteDatabase sqliteDatabase) {
      myDatabaseTask = null;
    }
  }
}

La siguiente semana estaré escribiendo un ejemplo sencillo de como implementar un “Event Listener” para complementar las AsyncTask.

Analista/Desarrollador y cofundador de QBit Mexhico. Tecnologías utilizadas Android, Java (EJB, Servlets, Faces, Groovy & Grails, Maven, Swing), .Net (C#, VB, ASP, MVC), Delphi, Spring, Hibernate, DTSx, Oracle, T-SQL, Firebird, MySQL, MongoDB, NodeJs, ReactJs (Flux). Sistemas Operativos Mac, Ubuntu y Windows.

Twitter LinkedIn 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *