重新安装SD卡时重新启动SD卡上的应用程序服务

Ale*_*lav 9 android sd-card android-sdcard

由于压倒性的用户投诉,我决定尝试允许我的Android应用程序的用户根据官方文档将其移动到SD卡.但是,我的应用程序的核心功能要求后台服务持续运行.如果有人将我的应用程序移动到SD卡上,无论出于何种原因都会安装SD卡,我的后台服务将被终止.

只要我能在第一个可用的机会重启服务,那对我来说一切都好.不幸的是,尽管安装位置指南声称我可以使用广播意图ACTION_EXTERNAL_APPLICATIONS_AVAILABLE来检测SD卡何时在本地重新安装,该标志本身的文档,此新闻组讨论以及我自己的测试表明此广播未传送到应用程序哪些可用.只有尚未移动到SD卡的应用才能获得广播意图.

有没有办法重新启动我的后台服务而不等待用户在重新安装SD卡后打开我的应用程序?

Com*_*are 7

不可靠.您可以挂入无权限广播Intents(例如ACTION_SCREEN_OFF),该广播应最终触发并以此方式获得控制权.正如Hackborn女士所说,正确的答案是ACTION_EXTERNAL_APPLICATIONS_AVAILABLE要修复.您可能还会看到在外部应用程序可用之后是否发生了一些与SD卡相关的广播(例如ACTION_MEDIA_MOUNTED),尽管我希望在外部应用程序可用之前已经通过了所有这些广播.