android esperando respuesta del servidor
decir que quiero realizar una solicitud Http desde el servidor, este proceso lleva tiempo.
ahora debido a esto, la solicitud http debe ejecutarse en un hilo diferente (AsyncTask, Runnable, etc.)
- Java.lang.RuntimeException: No se puede crear el controlador dentro de hilo que no ha llamado Looper.prepare ();
- Android: el diseño de inflado toma mucho tiempo
- ¿Cómo implementar un ProgressDialog mientras que Activity solicita un SoapObject desde un Servicio Web?
- Cómo cancelar AsyncTask cuando la actividad termina?
- SystemClock.sleep () vs. Thread.sleep () mientras espera un bucle de semáforo
pero a veces sólo necesito la respuesta cuando lo pido, para actualizar la interfaz de usuario
usando Thread.sleep en un bucle para esperar la respuesta no es buen rendimiento
ejemplo: Quiero el nombre del usuario, le pregunto al servidor por él, y tengo que esperarlo ahora la actividad llama al UserManager que llama al manejador del servidor que realiza la operación y devuelve el resultado
tal vez un sistema de eventos está en orden, pero no estoy seguro de cómo hacer esto en mi scenerio y francamente estoy muy confundido sobre este tema
por favor ayuda a alguien
- Emisión de concurrencia para la cancelación del bucle de encuesta larga
- La rotación de vista de Android no ocurre después de algunas llamadas de setAnimation
- Handler to Handler VERSUS Mensajería para Messenger en Android
- ProgressBar no se restablece a "0" al abrir la segunda vez
- Ejecución de múltiples servicios
- Nexus 5 va a modo de espera hace ciclo de vida de actividad buggy
- Supervisar constantemente un sensor en Android
- Error de Android Studio: "El método getText () debe ser llamado desde el subproceso de interfaz de usuario, el subproceso inferido actualmente es el trabajador
Esto se puede hacer con w / AsyncTask … Manejar la solicitud de red en doInBackground()
y una vez doInBackground()
ha terminado, onPostExecute()
se activa en el hilo de la interfaz de usuario y es ahí donde puede ejecutar cualquier código que actualizará los elementos de la interfaz de usuario .
Si necesita algo un poco más genérico y reutilizable, probablemente desee implementar una devolución de llamada … Me referiré al hilo de la interfaz de usuario como el cliente y el AsyncTask como el servidor .
-
Cree una nueva interfaz y cree algunos stubs de método.
public interface MyEventListener { public void onEventCompleted(); public void onEventFailed(); }
-
Haga que su cliente pase la instancia de MyEventListener al servidor. Una manera típica de hacer esto es hacer que su cliente implemente la interfaz (MyEventListener) y se pase al servidor.
public class MyActivity implement MyEventListener { public void startEvent() { new MyAsyncTask(this).execute(); } @Override public void onEventCompleted() { // TODO } @Override public void onEventFailed() { // TODO } }
-
En el
onPostExecute
del servidor, compruebe si la devolución de llamada es null y llame al método apropiado.public class MyAsyncTask extends AsyncTask<Void, Void, Void> { private MyEventListener callback; public MyAsyncTask(MyEventListener cb) { callback = cb; } [...] @Override protected void onPostExecute(Void aVoid) { if(callback != null) { callback.onEventCompleted(); } } }
Puede leer más acerca de devoluciones de llamada aquí: http://www.javaworld.com/javaworld/javatips/jw-javatip10.html
- Retrofit-como biblioteca con soporte de caché de disco
- ¿Cómo compartir un enlace a Facebook sin la aplicación facebook instalada?