2012-02-09 72 views
1

我上由兩個部分組成Android的長時間運行的服務和數據庫

程序工作

服務組件將讀取發送各種系統功能(CPU使用率,內存使用率,正在運行的任務數,短信,撥打的電話等)每隔預定時間間隔說15分鐘。並將這些讀數/數據保存在數據庫中。

活動組件將從SQL數據庫文件讀取數據並處理該信息。

我的問題是

  1. 什麼樣的服務做我必須創建,將留永遠活着,直到它也應該自動系統重新啓動後重新啓動活動停止?

  2. 有沒有人得到的服務將數據寫入到數據庫的例子嗎?

  3. 我可以調用從服務父活動?

+0

哦,你真的需要接受一些答案之前有人會麻煩閱讀你的問題 – 2012-02-09 16:17:43

+0

我只有在幾天前獲得標記答案的權限。你可以請直接我到我的問題,我沒有接受正確的答案 – 2012-02-13 13:57:13

+0

http://stackoverflow.com/users/777593/khurram-majeed?tab=questions&sort=newest – 2012-02-13 14:23:44

回答

3

聽起來像一個相當標準的Service。請閱讀Service lifecycle

答案:

  1. 任何服務就行了。您將需要一個BroadcastReceiver,用於偵聽啓動時啓動服務的意圖BOOT_COMPLETED
  2. Service對象是Context對象,所以你可以做一個SQLite數據庫,你可以從一個Activity做任何事情。沒有不同。
  3. 定義「調用」和「父活動」。您可以通過標準startActivity()方法Context從服務中啓動Activity。如果在啓動時從BroadcastReceiver開始Service,則它是一個獨立的服務,沒有連接到任何Activity,所以沒有父母Activity

請注意,Service可能並不是絕對需要您陳述的意圖。如果你只做很少的事情,你可能會遇到AlarmManager報警。這樣你就不會離開Service運行 - 並消耗資源 - 對於你每15分鐘只處理一次的東西。

+0

家長活動是我的程序的活動組成部分它會啓動服務...根據您的意見,我可以假設我可以通過AlarmManager在一段時間後自動啓動我的活動..我必須從系統中讀取各種功能..是否有可能從活動中完成所有功能有ANR(應用程序沒有響應)錯誤? – 2012-02-09 16:45:33

+0

是的,'AlarmManager'能夠啓動任何東西。而且你是否得到ANR與你如何實現'Service'的啓動無關。 'Service'在相同的進程中運行,並在任何'Activity'的主線程中運行。如果由於「服務」處理而得到ANR,則需要將該處理分解爲不同的「線程」。 – 2012-02-09 16:49:03

相關問題