2011-08-22 22 views

Respuesta

12

Recomendaría la combinación de IntentService y ResultReceiver, como se describe en this post.

También eche un vistazo a Google iosched que implementa este modelo. La versión 2010 muestra cómo persistir el ResultReceiver entre los cambios de configuración (es decir, la rotación de la pantalla) usando onRetainNonConfigurationInstance, getLastNonConfigurationInstance y una clase estática.

Implementé este modelo con éxito en una aplicación. Avíseme si tiene algún problema con los enlaces proporcionados.

Editar: se me olvidó el "por qué";)

AsyncTask está obligado tighly a la actividad y no va a manejar los cambios de configuración así. Está bien para tareas cortas dentro de la vida de la actividad (entre onResume y). Estoy usando HttpClient para mis llamadas a la API REST con el tiempo de espera de la conexión y el tiempo de espera del socket establecido en 20 (debido a una red móvil deficiente ...). Significa que la llamada API puede durar hasta 40 s. Definitivamente desea manejar una tarea tan larga en un servicio en lugar de un AsyncTask.

+0

Tengo una pregunta para @hleroy, entonces cuando voy a iniciar IntentService OnResume(), OnStart(), o OnClickEventListener() ya que necesito guardar localmente usando SharedPreference para uso fuera de línea. Digamos, por ejemplo, que debo listar a 200 estudiantes en la interfaz de usuario desde el servidor usando el servicio web (WCF web api en mi caso), entonces, ¿dónde pondré esta línea de código? // start intent service // run Intent Service // Intent downloadIntent = new Intent (this.Context, typeof (StudentIntentService)); //this.Context.StartService (downloadIntent); ' –

Cuestiones relacionadas