在我的應用我有一組數據 - Definition
(主要是Strings
,Enums
和標誌 - 即沒有大),其動態(即不能被硬編碼到服務行動)定義IntentService
如何處理其輸入。的Android:保持在RAM中的數據,而不會影響電池壽命
我的基本問題,是因爲它不是從他們的XML文件中的每個一個Intent
傳遞給Service
時加載這些Definition
結構,我想保留在內存中(因爲它們規模小,快速訪問是導致需該服務經常被調用)並且使用坐在RAM中的Definition
來處理Intents
,因爲Service
接收它們。
從邏輯上講,我能想到的是一個永久背景Service
,有大量的消息來源說這是一個壞主意(我同意)。我猜基本上我想要的是一種將這些數據存儲在RAM中直到需要的方式(如Android系統用於打開應用程序,啓動器等的系統)並且不會對電池壽命產生任何不利影響(即, Service
確實沒有沒有任何但在RAM中保存數據直到被調用),但是隻要我的Service
被調用就可用?
是否有任何可能的方式,這可以實現,或者是唯一的選擇永久Service
,我必須非常小心地管理?
如果永久Service
是答案,將一個IntentService
(配置爲START_STICKY
)只是坐在RAM,直到它傳遞一個Intent
不影響電池壽命?
在android中沒有這樣的東西作爲一個真正的永久後臺服務。請記住,它首先是一部電話,因此任何包括前臺服務在內的服務都可以在電話鈴響起並且內存不足時終止。這種設計是故意的,否則服務可能會佔用所有內存,而您的手機會變成智能磚。 – Namphibian
好點,我想我只是在腦海中永久性地緩存幾KB的手機內存以延長使用時間,以換取快速響應,似乎是一個值得的折衷。但是我認爲,如果所有的應用都這樣做了,那麼「自私」的方法並不是全面適用的。 –