2013-06-22 34 views
4

我有一個以XML格式聲明的服務,對PACKAGE_ADDED廣播意圖做出響應。 它工作正常,但我剛剛發現,如果我強制停止應用程序,接收器將不會再收到任何東西。它沒有被調用。強制停止會使app的接收器不被呼叫?

這是正常的嗎?我能做什麼?

我需要確保它始終響應。

+0

嗯,我面臨同樣的問題。經過多次調試,最後我意識到如果我使用CleanMaster來殺死應用程序,我的WifiEnabledReceiver(用於跟蹤Wifi狀態)將永遠不會收到任何東西。 – anticafe

+0

如果活動不在前臺,請嘗試使用服務,並安排警報再次運行服務,以讀取接收方。 –

回答

0

如果您的接收器是由您的服務動態註冊的,那麼當他被殺時接收器也是如此。 但是,如果你聲明你的接收器在XML中,這應該工作。 (通常的引導接收器)

+0

在android 3.1+中,此功能不再可用。現在在Android 3.1+中,當應用程序強制停止時,即使應用程序在清單文件中註冊,應用程序也不會收到廣播接收器。 –

1

從Android版本3.1開始,應用程序無法接收廣播意圖,直到手動凝視一次。 在第一次啓動之前,啓動器將該應用程序視爲「已停止」。 (http://developer.android.com/about/versions/android-3.1.html在「停止的應用程序啓動控件」下)。

如果您手動強制停止應用程序,該標誌將被重新設置,您需要手動重新啓動以允許它再次接收事件。

1

嘗試在你的意圖添加FLAG_INCLUDE_STOPPED_PACKAGES

this FLAG

+0

請提供答案。 – Sachith

+0

謝謝你編輯它 – Kodomo