2010-10-18 42 views
10

Debido a las abrumadoras quejas del usuario, he decidido intentar que los usuarios de mi aplicación Android puedan moverlo a la tarjeta SD según the official documentation. Sin embargo, una función principal de mi aplicación requiere que se ejecute continuamente un servicio en segundo plano. Cuando alguien que ha movido mi aplicación a su tarjeta SD monta su tarjeta SD por cualquier razón, mi servicio de fondo será asesinado.Servicio de reinicio para la aplicación en la tarjeta SD Cuando se repone la tarjeta SD

Eso está bien para mí, siempre que pueda reiniciar el servicio en la primera oportunidad disponible. Desafortunadamente, a pesar de la guía install-location que afirma que puedo usar el Broadcast Intent ACTION_EXTERNAL_APPLICATIONS_AVAILABLE para detectar cuándo la tarjeta SD se remonta localmente, la documentación para ese indicador, this newsgroup discussion, y mis propias pruebas muestran que esta transmisión no se entrega a las aplicaciones que están disponibles . Solo las aplicaciones que no se han movido a la tarjeta SD obtienen la intención de transmisión.

¿Hay alguna manera de reiniciar el servicio en segundo plano sin esperar a que el usuario abra mi aplicación después de volver a montar la tarjeta SD?

+0

Hola, Alex, estoy enfrentando el mismo problema. ¿Cómo logró reiniciar su servicio en segundo plano? – Spynet

Respuesta

7

No fiable. Puede conectar en emisión sin permiso Intents (por ejemplo, ACTION_SCREEN_OFF) que debería activarse finalmente y obtener el control de esa manera. Como indica la Sra. Hackborn, la respuesta correcta es para que se corrija el ACTION_EXTERNAL_APPLICATIONS_AVAILABLE. También podría ver si ocurre alguna emisión relacionada con la tarjeta SD después de que las aplicaciones externas están disponibles (por ejemplo, ACTION_MEDIA_MOUNTED), aunque esperaría que todas hayan pasado antes de que la aplicación externa esté disponible.

Cuestiones relacionadas