una - onpostexecute android studio
Cómo llamar a una función de valor de retorno en AsyncTask (2)
Para mí, hago esto con una función de devolución de llamada, que invoco después de onPostExecute.
public AsyncUnzip(Activity ctx, Observer callback) {
this.ctx = ctx;
this.callback = callback;
}
y
@Override
protected void onPreExecute() {
super.onPreExecute();
dia = new ProgressDialog(ctx);
dia.setTitle("Bitte warten");
dia.setMessage("Geodatenpaket wird entpackt...");
dia.setCancelable(false);
dia.show();
}
y
@Override
public void onPostExecute( Boolean result ) {
super.onPostExecute(result);
dia.dismiss();
callback.update(null, returnFolder);
System.out.println("Unzipped to: " + returnFolder.getName() );
}
En ese caso, su llamada de Async Task se vería así:
AsyncUnzip unzipThread = new AsyncUnzip(ImportActivity.this, new Observer() {
@Override
public void update( Observable observable, Object data ) {//your code invoked after Async Task
} });
unzipThread.execute(selectedFile); //Start Unzip in external Thread.
Nota: Esta es una solución rápida y directa con una implementación anónima de Observer y sin un observable.
Soy nuevo en la programación andorid Acabo de meterme en un problema para llamar a devolver la función de valor dentro de doInBackground de doInBackground()
La pregunta simple es ¿Cómo esperar a que AsyncTask complete y luego ejecute return statement sin congelar la IU, también he estudiado onPostExecute()
pero no resuelve el problema. siguiente es código de muestra
public String hello() {
String result = null;
//calling asynctaske execute method
retrun result;
}
Puede crear una interfaz y devolver el valor desde onPostExecute()
de AsyncTask o puede registrar un BroadcastReceiver e onPostExecute()
desde el método onPostExecute()
de AsyncTask. Creé una demostración usando Interface y BroadcastReceiver que puedes descargar y verificar.