我正在構建一個Android應用程序,並且我需要定期檢查BBDD值,大約每60秒檢查一次。當應用程序找到它時,會將一個值發送到應用程序以更新UI中的數據值。我們應該在Service,intentservice,runnable和thread之間使用哪一個?
我的應用程序有一個名爲MainActivity的Activity,並使用NavigationDrawer和begintransaction方法從supportFragmentManager更改片段。
在這種情況下使用什麼?
我正在構建一個Android應用程序,並且我需要定期檢查BBDD值,大約每60秒檢查一次。當應用程序找到它時,會將一個值發送到應用程序以更新UI中的數據值。我們應該在Service,intentservice,runnable和thread之間使用哪一個?
我的應用程序有一個名爲MainActivity的Activity,並使用NavigationDrawer和begintransaction方法從supportFragmentManager更改片段。
在這種情況下使用什麼?
看看下面的post
何時使用?
該服務可以用於沒有UI的任務,但不應該太長。如果您需要執行長時間的任務,則必須在Service中使用線程。
IntentService可用於通常沒有與主線程通信的長時間任務。如果需要通信,可以使用主線程處理程序或廣播意圖。另一種使用情況是需要回調(意圖觸發任務)。
如何觸發?
該服務由調用方法startService()觸發。
IntentService使用Intent觸發,它產生一個新的工作線程,並在該線程上調用onHandleIntent()方法。
觸發從
的服務和IntentService可以從任何線程,活性或其它應用程序組件觸發。
運行在
的服務在後臺運行,但其上運行的應用程序的主線程。
IntentService在單獨的工作線程上運行。
侷限/缺點
的服務可能阻止該應用程序的主線程。
IntentService無法並行運行任務。因此,所有連續的意圖都將進入工作線程的消息隊列並將按順序執行。
何時停止?
如果您實施服務,則通過調用stopSelf()或stopService()完成工作後,您有責任停止該服務。 (如果你只想提供綁定,你不需要實現這個方法)。
IntentService在處理完所有啓動請求後停止服務,因此您不必調用stopSelf()。
謝謝,這是他們之間差異的完美解釋。我已經知道了這些差異,我的問題的目的是知道在一般意見下哪個是我的應用程序的最佳選擇。對不起我的語法錯誤。 – DaSound 2015-03-25 11:11:41