2011-03-29 40 views
2

我是Android新手。我一直在閱讀幾篇有關線程/服務的文章和文檔,但我仍然無法弄清楚哪個是最適合我的應用的解決方案,所以我想知道你是否可以給我你的建議。獨立工作線程或IntentService?

我的主UI應該有「開始」和「停止」按鈕。 「開始」會創建一個Thread,開始將信息(即電池統計信息,RSSI或其他)寫入文件。按「開始」後,我將切換到其他應用程序,所以我的用戶界面將處於「停止」狀態(如果我沒有誤解生命週期)。最終,我會回到我的應用程序,並希望能夠停止該線程。

對於像下載/上傳大文件這樣的長時間運行的任務,我閱讀最合適的方法是擁有一個IntentService,這樣即使應用程序停止(如果內存不足,也會銷燬),服務將繼續其任務直到完成。在我的應用程序中,服務不會自行停止(我希望使用stopService命令停止服務),服務仍然是繼續進行的最佳方式?或者我應該只使用一個工作線程,因爲我的UI在正常情況下不可能被殺死?

你會推薦直接寫入文件,還是使用sqlite?

回答

2

你所描述的看起來像Service。它獨立於活動工作,但可以在必要時停止工作。線程或類似Android的更好的解決方案,AsyncTask,用於不那麼長的事情,如下載不是一個大文件。

至於第二個問題,這取決於。如果你的數據相當複雜,裏面有關係,應該以多種方式查詢,那麼sqlite是正確的選擇。否則,您可以簡單地將數據寫入文件。

+0

感謝您的答案@Vladimir,我將使用服務:) – kabracity 2011-03-29 13:37:21