android - reinicio - mi celular se reinicia solo y no prende
Reinicio automático de la aplicación después de la actualización del mercado (3)
Es algo que deberás probar con cuidado, pero deberías poder atraparlo con un receptor de transmisión con la acción Intent.ACTION_PACKAGED_REPLACED
Luego, inicia el servicio desde su receptor.
Cada vez que publico una nueva versión de mi aplicación en Market, si el usuario habilitó la opción de "actualización automática", la aplicación se actualizará automáticamente.
La aplicación contiene un servicio que se ejecuta constantemente. Pero cuando ocurre la actualización automática, la aplicación en ejecución anterior es eliminada, pero la nueva no se inicia. Dado que la actualización se realiza de manera casi transparente para el usuario, tiene sentido que el servicio de la aplicación se inicie de nuevo automáticamente después de la actualización, de modo que casi no haya interrupción del servicio.
Es un poco difícil probar esto con una actualización real del mercado, así que estoy usando los siguientes dos comandos adb para simular este proceso de actualización. Instalación de la primera versión:
adb install oldversion.apk
Actualización automática:
adb install -r newversion.apk
Después de ejecutar el segundo comando, la aplicación se actualiza correctamente, pero se ha detenido y no se ha reiniciado.
¿Cómo podemos hacer que el servicio de la nueva versión se inicie automáticamente?
Registre un BroadcastReceiver
en Intent.ACTION_PACKAGE_REPLACED
Luego, compare EXTRA_UID
con el suyo. Si coincide, puede reiniciar su servicio nuevamente.
Si su aplicación se ejecuta con API 12
o superior, le recomendaría registrar un BroadcastReceiver
escuchando android.intent.action.MY_PACKAGE_REPLACED
.
Esta intención solo se activa si su aplicación recibió una actualización.