来自服务使用:runOnUiThread或AsyncTask或Handler或Post

时间:2011-06-13 08:58:09

标签: android user-interface

我正在写一个voip应用程序。它基于管理voip逻辑的服务和用于拨打电话,回答等的UI 从服务更新UI的最佳方法是什么:

  • runOnUiThread或
  • AsyncTask或
  • 处理程序或

何时使用一种方法而不是另一种方法?

我知道runOnUiThread是有问题的,因为它可能导致事件无序运行(如果线程已经是UI线程)。

感谢。

2 个答案:

答案 0 :(得分:2)

据我记忆,您无法直接从服务更新屏幕。您必须使用广播接收器来捕获您的广播服务。我想AsyncTask本身使用runOnUiThread,但它提供了在后台线程中执行一个方法并将结果放入UI线程的好方法。

答案 1 :(得分:0)

您必须调用bindService()来绑定到服务。然后,您可以使用AsyncTask或Handler将信息从服务中取出。

更多阅读:Android Developers