2011-06-13 52 views
4

我在写一个voip应用程序。它是基于管理的VOIP逻辑和UI拨打电话,接听服务等
什么是更新从服务用户界面的最佳方式:
从服务使用:runOnUiThread或AsyncTask或Handler或Post

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

当使用一个方法比其他?

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

谢谢。

回答

2

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

0

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

更多阅读:Android Developers