2016-09-26 70 views
0

應該在服務中使用什麼來擺脫UI線程?解決方案從主線程在服務中移動?

對於這兩個啓動的服務和綁定的服務

  1. 裝載機
  2. 的AsyncTask
  3. 簡單的線程
  4. Robospice圖書館
  5. 還是其他什麼東西

我希望我的服務,即使如此,仍繼續運行該應用程序在後臺。

我想服務運行時間不定。

謝謝。

+0

6)[IntentService](https://developer.android.com/reference/android/app/IntentService.html)這取決於什麼你在做。使用適合您需求的產品。 – codeMagic

+0

子類'Service'和啓動後臺'Thread'有 – Blackbelt

+0

......你也應該remeber約wakelocks ...... – Selvin

回答

0

使用IntentService。它是Service的一個子類。它會自動在後臺線程中運行代碼。執行完成後它自行清除。您不必停止IntentService。

0

如果你需要運行一個長期的任務,並停止後的服務,你應該使用IntentService - 它在不同的thred運行和停止本身工作完成後。從您的描述中可以看出,您希望Service無限期地運行。爲此,你應該使用RxJava庫。它具有執行併發操作的許多優點,請參閱文檔以獲取更多詳細信息。 爲主線程提供兩個線程池和調度程序; 輕鬆允許同步併發任務 - 您可以執行一個任務,等待另一個任務等,而無需使用純java的鎖。 您可以在一個線程上運行作業,然後在另一個線程上處理結果等; 您可以以反應方式處理結果; 您可以從HandlerThread創建自己的調度程序,併爲所有任務使用單線程

+0

謝謝。是的,我希望我的服務無限期地運行。你能請我帶一些好的鏈接。因爲我不知道RxJava,我也不知道這是否是離開服務主線程的最佳方式。 –