在進行Android中的某些工作是大大建議使用處理程序,因爲:
在Android中一個只能更新在其原來的線程,即,它們被創建的線程的意見,否則應用程序可能會引發一個例外說
android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Android中的處理程序與創建它們的線程綁定。每個Handler實例都與單個線程和該線程的消息隊列相關聯。當您創建一個新的處理程序時,它將綁定到正在創建它的線程的線程/消息隊列 - 此後,它將消息和可運行消息傳遞到該消息隊列,並在消息出來時執行它們隊列。所以處理程序是Android中最安全的。
雖然服務,繼承人從http://developer.android.com/reference/android/app/Service.html
一段代碼什麼是服務?
有關服務類最混亂實際上都是圍繞着它不是什麼:
服務沒有單獨的進程。服務對象本身並不意味着它在自己的進程中運行;除非另有說明,否則它與它所屬的應用程序在相同的過程中運行。
服務不是線程。它不是一種自己的方式來處理主線程(以避免應用程序不響應錯誤)。 因此服務本身其實很簡單,提供了兩個主要特點:
一種設施爲應用程序告訴系統的東西,它希望在後臺(做即使用戶不直接與應用程序交互)。這對應於對Context.startService()的調用,它要求系統安排服務的工作,直到服務或其他人明確停止它爲止。
應用程序將其某些功能公開給其他應用程序的工具。這與對Context.bindService()的調用相對應,該調用允許與服務進行長期連接以與其進行交互。
而且最後線程,
線程來執行一些重非視圖功能,一些繁重的計算工作方式類似解析等,以便它不會阻止你的用戶界面和安全地完成所有的工作...
謝謝。我發現在PhoneGap中,它爲webview的每個請求使用線程。所以它可能安全且容易使用線程。 – Aloong 2012-03-16 07:01:14