2010-10-18 62 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卡有關的廣播,但我希望所有這些廣播在外部應用程序可用之前已通過。