Estoy tratando de entender el mecanismo del controlador de devolución de llamada. ¿Cómo se invoca el método handle()? ¿Alguien puede dar un ejemplo de uso de controlador de devolución de llamada personalizado (que no sean los utilizados en los Módulos de inicio de sesión de JASS más o menos) en la aplicación no Swing?Custom Callback Handler
5
A
Respuesta
9
Defina una interfaz para manejar la devolución de llamada.
public interface ServiceListener<T> {
void callback(T result);
}
Defina un método que toma ServiceListener como parámetro y devuelve vacío.
Public void runInBackground(ServiceListener listener) {
...code that runs in the background...
listener.callback(...data to return to caller...);
}
Y ahora puede hacerlo desde su código principal:
runInBackground(new ServiceListener() {
@Override
public void callback(..returned data...) {
...Do stuff with returned data...
}
});
3
Este es un ejemplo básico para la solicitud de datos de un servidor web utilizando el AsyncTask desde una aplicación Android.
Primero defina la clase async. Tenga en cuenta que el constructor toma un oyente que usamos para publicar el resultado una vez listo.
public class Webservice extends AsyncTask<String, Void, String> {
private DialogListener dialogListener;
public Webservice(final DialogListener dialogListener) {
this.dialogListener = dialogListener;
}
@Override
protected String doInBackground(final String... strings) {
// We cant trigger onComplete here as we are not on the GUI thread!
return "";
}
protected void onPostExecute(final String result) {
dialogListener.onComplete(result);
}
}
clase de servidor básico para el manejo de varias comunicaciones de red:
public class Server {
public void queryServer(final String url, final DialogListener service) {
// Simulate slow network...
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Webservice(service).execute(url);
}
}
Ahora podemos utilizar este código dentro de nuestra actividad sin tener que preocuparse por la duración de la llamada toma, ya que no se va a detener la GUI como se ejecuta como sincronización.
Server s = new Server();
// Async server call.
s.queryServer("http://onto.dk/actions/searchEvents.jsp?minLatE6=55640596&minLngE6=12078516&maxLatE6=55642654&maxLngE6=12081948", new DialogListener() {
@Override
public void onComplete(final String result) {
toast("complete");
}
@Override
public void onError() {
toast("error");
}
});
Cuestiones relacionadas
- 1. Sentry custom 500 handler
- 2. vinculando al servicio en ejecución (después del final())/callback Handler
- 3. Asp.NET Handler y Generic Handler
- 4. SensorManager.registerListener (.., Handler handler), ejemplo por favor?
- 5. Memoization Handler
- 6. Facebook-connect demo - es "Callback URL" == "Connect Callback URL"?
- 7. Handler vs Thread
- 8. Android WebView Protocol Handler
- 9. GameCenter Invitation Handler
- 10. Android Handler Periódicamente
- 11. C# callback from DLL
- 12. JavaScript Callback Scope
- 13. Android SyncAdapter Callback
- 14. jQuery Validación Callback Function
- 15. NSOperation y NSOperationQueue callback
- 16. Facebook omniauth callback y #_
- 17. getJSON Callback Not Firing
- 18. WCF Callback channel fault
- 19. Jquery - fancybox y callback
- 20. UITableView beginUpdates/endUpdates callback
- 21. Paypal Callback de pago
- 22. Jquery ajax error callback
- 23. WCF Duplex Callback Sample failure
- 24. Custom 'ExportFactory'
- 25. Custom DatePicker
- 26. WCF Custom JSONP Binding y httpsTransport
- 27. Boost :: asio async_wait handler signature
- 28. ¿Cómo iniciar/detener Runnable/Handler?
- 29. cómo detener Handler en Android?
- 30. userland multipart/form-data handler
Necesito uno o dos ejemplos concretos. ¿Puedes elaborar un poco? – Partha
¿Puedo darle un ejemplo de Android si eso fuera de alguna ayuda? – slott
@slott: ¡Sí, por favor! – Zolomon