2014-10-08 48 views
0

我在商店有一個應用程序,一些用戶表示,該應用程序使用太多的電池,或者他的資源(10或20mb +)高。在我的設備中,如果看到它的話,它的性能很好,只需幾個設備。如何優化電池和資源的短信後臺服務

我使用短信廣播接收器來讀取所有發送短信,如果我看到任何消息,我想處理我讀它等。所以基本上服務需要運行所有的時間,所以我不會失去任何消息,可能會來。

有沒有一種方法來優化這個或者如果可能使代碼更輕以便所有的用戶都可以使用它呢?我知道它可能因設備不同而不同,從Android版本到版本,但給它一個鏡頭會很好。

我沒有嘗試任何東西,因爲我沒有線索可能是什麼問題,或者如果實際上有一個。我搜索了一點,人們說服務不應該一直運行,應該重新啓動幾次或在不需要時關閉它。但我的短信接收器需要一直運行。

任何想法或任何我應該檢查?

我的服務的方式是startForeground,所以它不會從android關閉。

謝謝您的時間

回答

1

您不需要經常運行的服務來接收傳入的短信。只需在清單中註冊BroadcastReceiver類,然後在onReceive()中啓動IntentService,以處理您需要執行的任何處理。 IntentService完成後將自行停止。您的應用程序不需要爲靜態註冊的接收器發送SMS_RECEIVED廣播的活動組件。接收器將在交付意圖時由系統啓動。

+0

如果手機重新啓動,我不打開應用程序會怎麼樣。短信廣播是否會激活,然後閱讀發送的短信? – 2014-10-08 12:40:07

+0

是的。安裝完成後,用戶需要運行一次你的應用程序才能將其從_stopped_狀態(至少在較新的Android版本上)中移除,但除此之外,Receiver將被註冊以接收所有相關廣播。 – 2014-10-08 12:44:48

+0

在每次重新啓動後運行應用程序一次,你的意思是對的? – 2014-10-08 13:12:55