我在寫一個voip應用程序。它是基於管理的VOIP邏輯和UI撥打電話,接聽服務等
什麼是更新從服務用戶界面的最佳方式:
從服務使用:runOnUiThread或AsyncTask或Handler或Post
- runOnUiThread或
- 的AsyncTask或
- 處理程序或
- 後
當使用一個方法比其他?
我知道runOnUiThread是有問題的,因爲它可能會導致事件發生亂序(如果線程已經是UI線程)。
謝謝。
我在寫一個voip應用程序。它是基於管理的VOIP邏輯和UI撥打電話,接聽服務等
什麼是更新從服務用戶界面的最佳方式:
從服務使用:runOnUiThread或AsyncTask或Handler或Post
當使用一個方法比其他?
我知道runOnUiThread是有問題的,因爲它可能會導致事件發生亂序(如果線程已經是UI線程)。
謝謝。
據我記憶,你不能直接從服務更新屏幕。您必須使用廣播接收器來從服務中捕獲您的廣播。我猜AsyncTask本身使用runOnUiThread,但它提供了很好的方法在後臺線程中執行一個方法,並將結果放入UI線程。
你必須調用bindService()來綁定到服務。然後,您可以使用AsyncTask或Handler從服務中獲取信息。
更多閱讀:Android Developers