Reinicie el servicio para la aplicación en la tarjeta SD cuando se vuelve a cargar la tarjeta SD

Debido a las quejas de usuarios abrumadoras he decidido intentar permitir a los usuarios de mi aplicación de Android moverlo a la tarjeta SD según la documentación oficial . Sin embargo, una característica principal de mi aplicación requiere un servicio de fondo que se ejecute continuamente. 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.

Eso es todo bien por mí, siempre y cuando pueda reiniciar el servicio en la primera oportunidad disponible. Desafortunadamente, a pesar de la guía de ubicación de la instalación, afirmo que puedo usar la Intención de difusión ACTION_EXTERNAL_APPLICATIONS_AVAILABLE para detectar cuando la tarjeta SD se ACTION_EXTERNAL_APPLICATIONS_AVAILABLE a montar localmente, la documentación para ese indicador, esta discusión de grupos de noticias y mi propia prueba. Aplicaciones que estén disponibles. Sólo las aplicaciones que no han sido movidas a la tarjeta SD obtienen el Propósito de difusión.

¿Hay alguna forma de reiniciar mi servicio de fondo sin esperar que el usuario abra mi aplicación después de que se vuelve a montar la tarjeta SD?

No es fiable. Usted podría enganchar en Intents difusión del permiso-menos (por ejemplo, ACTION_SCREEN_OFF ) que debe encenderse eventual y conseguir control esa manera. Como indica la Sra. Hackborn, la respuesta correcta es que ACTION_EXTERNAL_APPLICATIONS_AVAILABLE se solucione. También puede ver si ocurre alguna transmisión relacionada con tarjetas SD después de que se disponga de aplicaciones externas (por ejemplo, ACTION_MEDIA_MOUNTED ), aunque esperaría que todas hayan pasado antes de que la aplicación externa esté disponible.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.