2011-02-17 52 views
0

我正在研究一個Android應用程序,以用於我們在實驗室中運行的實驗。應用程序使用加速度計監視用戶移動,定期對這些數據執行計算,並將結果寫入文件。如何運行連續過程

我目前有一個非常困難的時間試圖找到一種方法來運行這個過程,我們的試驗需要15-20分鐘,而不會被殺死。儘管聲明應用程序持久化,嘗試各種服務方法(startForeground(),START_STICKY,..)等等......我似乎無法讓Android OS決定暫停或終止我的服務/進程。

我已經做了一些研究,唯一的建議是我可以找到的是如何設置你的流程,從死亡中恢復正常,但是我不能在我的數據中有空白,因此需要這個過程持續運行。

難道有人指着我正確的方向嗎?

回答

0

我可以爲我的問題提出的最佳解決方案是將設備上的屏幕睡眠延遲時間增加到30分鐘,並且在我們的試驗期間沒有按下任何按鈕。

0

documentation我得到的印象是,如果你想擁有一個僅在內存嚴重不足的情況下被殺死一個服務,你需要:

  • startForeground()(你已經這樣做了)
  • START_STICKY(你試過了太)或START_REDELIVER_INTENT(如果它被殺死重新啓動服務,但還有你的數據空白)在一個單獨的線程
  • 運行所有的處理
  • 使用Context.startService()來啓動服務

唯一可行的方法是將其作爲system daemon