2016-12-08 28 views
0

我正在嘗試製作應用程序,如果某個特定事件觸發,將調用哪個應用程序。在我的應用這個東西是短信。當一個新的短信接收我讀它的內容,我尋找一個具體的內容如果它提出了一個警報將繼續。如果我關閉Recent Apps,BroadcastReceiver無法正常工作

如果應用程序打開,它只是工作正常。接收器觸發好...但是當我清除最近的應用程序接收器不觸發。我在這裏搜索了很多..和我們大多數人說,當一個應用程序在STOPPED_STATE它不會收到任何通知,特定的事情發生。

我有一個Android設備Hauwei和Android版本4.4.4,當我清除我最近的應用程序,它完全摧毀我的應用程序。接收器停止工作。

我試過做一個服務並返回start_sticky,對我來說它只有前臺進程而不是後臺任務。但我不想推送一個說myApplication在你的設備上運行的通知。

現在我想要的是我需要一個接收器,即使應用程序關閉,也應該接收SMS_RECEIVED(這裏我不是說應用程序的STOPPED_STATE)。

clearRecentApps myApp在STOPPED_STATE之後(我可以在設置中看到myApps FORCE_STOP按鈕被禁用)。但是同時WATSAPP,FACEBOOK和CLASSOFCLANS不是STOPPED_STATE(在那些FORCE_STOP按鈕被啓用的設置中)。沒有任何前臺通知。

他們如何做?請幫我傢伙...這回吐很多天了我..

如果我錯了,讓我知道。蔭新到Android。任何幫助,將不勝感激..

+0

是的,你需要在這裏使用服務。在startService方式中onCreate,註冊接收器並在Service的onDestroy中註銷它。並用STICKY返回startService。 – Vinodh

+0

我已經嘗試過,但它不工作....如果我清除最近的應用程序我的應用程序服務不工作...我不知道它停止工作 –

+0

你可以共享註冊接收器的代碼?程式化或清單? – rafa

回答

0

這可能是一個解決辦法,但要保持你的服務運行,即使您的應用程序被關閉,你不得不服務的再次開始爲您服務onDestroy()方法。

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    startService(new Intent(this, YourServiceClass.class)); 

} 
+0

我試過了..但onDestroy方法並沒有得到調用 –