2010-11-24 18 views

Respuesta

12

En caso del sueño dispositivo, de la actividad `onPause()' se llamará. Lee activity lifecycle para entender esto.

El sistema operativo solo elimina el proceso cuando la memoria/los recursos son bajos. Las actividades se matan primero, los servicios solo se matan como último recurso.

Pero no hay garantía de que no mueran. Es por eso que debe confiar en que los servicios del sistema lo llamen cuando necesite algún trabajo: use AlarmManager para llamar su código periódicamente o use oyentes para notificarle sobre cambios en el sistema (gps, red, etc.)

0

Cuando el teléfono duerme las actividades no se destruyen. Creo que todo lo que sucede es que las actividades siguen siendo las mismas, pero activa el método onPause().

Ver esta imagen:

alt text

0

Cuándo el teléfono se va a dormir, se llama al método onPause(). Este método es solo una advertencia para tu aplicación. Luego, dependiendo del dispositivo, la CPU también puede irse a dormir y la ejecución de su código puede detenerse. En la mayoría de los dispositivos, puede pasar entre 10 y 60 segundos después de que la pantalla se apague.

Es muy poco probable que al quedarse dormido resulte en la muerte de su aplicación.

1

Lo que vi en mi aplicación es que solo se llama al método onPause() de la actividad principal (category.Launcher). Esto sucedió cuando el teléfono se fue a dormir y antes de eso se había iniciado la actividad principal de la aplicación.

Cuando cualquiera de las otras actividades se habían iniciado antes de que el teléfono se va a dormir la primera onPause() es llamado entonces onStop() y en el extremo OnDestroy() - esto es para actividades que están en category.DEFAULT el manifiesto

No sé si tal vez el problema está en mi código?

Cuestiones relacionadas