我需要您的想法。我正在尋找的是一個任務或服務,運行在後臺(無UI),能夠執行以下操作:Android:用於後臺處理的組件,必須手動啓動
- 它不應該永久運行,只有當它被調用時。有兩個可能的來電者:
- gui/touch應用程序。用戶可以輸入數據,應用程序將這些數據傳遞給數據持久存儲的後臺服務。這可能隨時發生,並定期在Android操作系統上隨機發生。也許AlarmManager是一個合適的方法。當定期(例如,每30秒)調用一次該服務時,它應該處理在步驟1中存儲的數據。處理完成後,它應該停止自己以節省電池。
換句話說: 用戶不觸發處理,用戶只是對輸入負責。 AlarmManager然後定期觸發處理。
Android服務類是適合的還是有更好的方式去?
如果是,我在理解服務類時遇到問題。根據文檔,它沒有自己的進程,但在主機進程中運行。這是否會導致問題?所以有時候,phonegap插件(傳遞數據)是主機進程,有時報警代碼是主機進程,或者我錯了?我的意思是該服務沒有主要應用程序,它可以從不同的位置調用獨立的東西。
感謝
謝謝
感謝,IntentService看起來很有希望,但我仍然有問題unettanding它。在傳統Java中,當方法A從線程1調用時,方法A在線程1中運行。如果從線程2調用同一對象的相同方法A,則A突然在線程2中運行。然後我必須知道我的對象中的數據。 IntentService的行爲如何?排隊總是發生,不管它被調用哪個線程?服務中的數據是否保存? – ceran 2012-02-02 14:56:06
我已經稍微編輯了我的答案,以解釋Intents如何排隊並且全部在單個工作線程上運行。只要您只在工作線程(onHandleIntent(Intent)方法)內處理它,您的數據就應該是安全的。 – mcnicholls 2012-02-02 15:03:19
另外請確保考慮@herom在他的回答中所說的話。 – mcnicholls 2012-02-02 15:05:25