2011-06-26 46 views
7

En mi clase de widgets que se extiende se extiende AppWidgetProvider Tengo algunas ArrayLists finales estáticas que contienen datos. Tengo algunos botones en mi Widget que cuando se presiona dan como resultado que se llame a Recepcion dentro de la clase. Me he dado cuenta a veces de que ArrayLists habrá perdido sus valores (estará vacío) cuando se ejecuta onReceive, pero la mayoría de las veces tienen datos como se esperaba.Android Widget Lifecycle

¿Es seguro usar ArrayList en este caso? ¿Hay algún evento del ciclo de vida del widget que haga que la lista se vuelva a instanciar? Me resulta muy difícil encontrar documentación sobre eventos de Widget Lifecycle.

Respuesta

11

¿Es seguro usar ArrayList en este caso?

No. Si nada más de su aplicación se está ejecutando, su proceso puede ser terminado entre onUpdate() llamadas.

¿Hay algún evento del ciclo de vida del widget que haga que la lista se vuelva a instanciar?

Su proceso ha finalizado.

Me resulta muy difícil encontrar documentación sobre eventos de Widget Lifecycle.

Esto se debe a que no existe un ciclo de vida de la manera que usted está pensando.

Un AppWidgetProvider es un manifiesto registrado BroadcastReceiver. Un manifiesto BroadcastReceiver registrado vive tan solo como lo hace su llamada onReceive(). Nada que viva fuera de ese alcance, como miembros de datos estáticos, será confiable.

Guarde su información en archivos o bases de datos.

+1

si mi proceso fue terminado y luego reiniciado por el sistema - ¿vuelve a llamar a Update() una vez que el proceso se ha reiniciado? – user1492955