valor una studio retornar onpostexecute oncancelled funcion español asynctask android android-asynctask

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.