9

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

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

有什么方法可以在重新挂载 SD 卡后无需等待用户打开我的应用程序即可重新启动我的后台服务?

4

1 回答 1

7

不可靠。您可以挂接到最终应该触发的无许可广播Intents(例如, )并以这种方式获得控制权。ACTION_SCREEN_OFF正如哈克伯恩女士所说,正确的答案是ACTION_EXTERNAL_APPLICATIONS_AVAILABLE有待解决。您可能还会看到是否在外部应用程序可用(例如,)之后发生了一些与 SD 卡相关的广播ACTION_MEDIA_MOUNTED,尽管我希望所有这些都在外部应用程序可用之前通过。

于 2010-10-19T01:22:01.690 回答