2010-10-18 103 views
10

由于用户投诉过多,我决定尝试允许我的Android应用程序用户根据the official documentation将其移动到SD卡。但是,我的应用程序的核心功能需要后台服务持续运行。如果有人将我的应用程序移动到他们的SD卡上,无论出于何种原因,我的后台服务将被终止。当SD卡被重新安装时在SD卡上重新启动应用程序

只要我能在第一个可用的机会重新启动服务,这一切都可以。遗憾的是,尽管install-location指南声称我可以使用广播意图ACTION_EXTERNAL_APPLICATIONS_AVAILABLE来检测SD卡何时在本地重新安装,但是该标志本身的文档this newsgroup discussion以及我自己的测试显示,此广播未传递到可用的应用程序。只有没有被移动到SD卡的应用程序才能获得广播意图。

有没有什么办法可以重新启动我的后台服务,而无需等待用户在SD卡重新安装后打开我的应用程序?

+0

嘿亚历克斯,我面临同样的问题。你是如何设法在后台重启你的服务的? – Spynet 2016-01-04 08:40:52

回答

7

不可靠。您可以勾选最终触发并获得控制权的无权限广播Intents(例如,ACTION_SCREEN_OFF)。正如哈克博恩女士所指出的,正确答案是ACTION_EXTERNAL_APPLICATIONS_AVAILABLE得到解决。在外部应用程序可用后(例如,ACTION_MEDIA_MOUNTED),您可能还会看到是否发生了一些与SD卡有关的广播,但我希望所有这些广播在外部应用程序可用之前已通过。