由于大量的用户投诉,我决定尝试允许我的 Android 应用程序的用户根据 the official documentation 将其移动到 SD 卡上.但是,我的应用程序的核心功能需要后台服务持续运行。当有人将我的应用程序移动到他们的 SD 卡时,无论出于何种原因安装他们的 SD 卡,我的后台服务都会被终止。
我没问题,只要我能在第一个可用的机会重新启动服务即可。不幸的是,尽管 install-location指南声称我可以使用 Broadcast Intent ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
要检测 SD 卡何时在本地重新安装,该标志本身的文档,this newsgroup discussion ,我自己的测试表明这个广播没有传送到可用的应用程序。只有尚未移动到 SD 卡的应用程序才能获得广播 Intent。
有什么方法可以在重新挂载 SD 卡后不等待用户打开我的应用程序而重新启动我的后台服务?
最佳答案
不可靠。您可以连接到无许可广播 Intents
(例如,ACTION_SCREEN_OFF
),它最终应该触发并以这种方式获得控制权。正如 Hackborn 女士指出的那样,正确的答案是修复 ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
。您可能还会看到一些与 SD 卡相关的广播是否恰好在外部应用程序可用后发生(例如,ACTION_MEDIA_MOUNTED
),尽管我希望所有这些都在外部应用程序可用之前通过。
关于android - 重新挂载SD卡后重启SD卡上的APP服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964375/