由于用户投诉压倒一切,我决定尝试让我的
Android应用程序的用户按照
the official documentation将其移动到SD卡.但是,我的应用程序的核心功能要求后台服务不断运行.当我的应用移动到SD卡的人因为任何原因而安装SD卡时,我的后台服务将被杀死.
只要我能在第一个可用的机会重新启动服务,我可以这样做.不幸的是,尽管install-location指南声称我可以使用Broadcast Intent ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
来检测SD卡何时在本地重新安装,该标志本身的文档this newsgroup discussion和我自己的测试表明,此广播未传送到可用的应用程序.只有尚未移动到SD卡的应用程序才能获得广播意图.
解决方法
不可靠您可以挂接到最终触发的无权广告意图(例如ACTION_SCREEN_OFF),并获得控制权.正如Hackborn女士所说,正确的答案是ACTION_EXTERNAL_APPLICATIONS_AVAILABLE是固定的.您可能还会看到在外部应用程序可用后(例如,ACTION_MEDIA_MOUNTED)是否发生了一些SD卡相关广播,尽管我希望所有这些广播在外部应用程序可用之前已经通过.