Pregunta

Estoy desarrollando una AppWidget Android para mi aplicación. Para actualizar mi appwidget que necesito para la descarga de datos desde la red. Pero cuando trato de hacerlo en el método onUpdate, mi appWidget es matado por el sistema Android. He aprendido que el tiempo que consumen las operaciones no se pueden realizar en los receptores por lo que puso en marcha un servicio de onUpdate método y puso en marcha un hilo de eso. Pero aún así el problema persiste. ¿Puede alguien por favor hágamelo saber cómo hacer las operaciones de la red en Appwidget?

¿Fue útil?

Solución

delegar el trabajo de descarga para un servicio, probablemente un IntentService, posiblemente un WakefulIntentService dependiendo si existe un riesgo de que el dispositivo podría quedarse dormido durante el trabajo en sí mismo.

Su AppWidgetProvider simplemente llamaría startService() en su IntentService.

Su método IntentService's onHandleIntent() haría el trabajo que tiene actualmente en onUpdate(), conseguir su propia AppWidgetManager a través del método getInstance() estática. Pero, puesto que onHandleIntent() se ejecuta en un subproceso en segundo plano, se puede tomar tanto tiempo como sea necesario. El IntentService también se apagará automáticamente una vez que se hace con todas las solicitudes de trabajo excepcional.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top