Due to overwhelming user complaints I have decided try allowing users of my Android application to move it to the SD card as per the official documentation. However, a core feature of my application requires a background service to be continuously running. When someone who has moved my app to their SD card mounts their SD card for whatever reason, my background service will be killed.
That's all okay by me, as long as I can restart the service at the first available opportunity. Unfortunately, despite the install-location guide claiming I can use the Broadcast Intent ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
to detect when the SD card is remounted locally, the documentation for that flag itself, this newsgroup discussion, and my own testing show that this broadcast is not delivered to the applications which become available. Only applications which have not been moved to the SD card get the Broadcast Intent.
Is there any way to restart my background service without waiting for the user to open my app after the SD card is remounted?