我正在编写一个voip应用程序。它基于管理voip逻辑的服务和拨打电话、接听电话等的UI。
从服务更新UI的最佳方式是什么:
- runOnUiThread或
- AsyncTask或
- 经办人或
- Post
什么时候使用一种方法而不是另一种方法
我知道runOnUiThread是有问题的,因为它可能会导致事件无序运行(以防线程已经是UI线程)。
谢谢。
据我所知,您不能直接从服务更新屏幕。您必须使用广播接收器才能从服务中捕捉到您的广播。我猜AsyncTask本身使用runOnUiThread,但它提供了在后台线程中执行一个方法并将结果放入UI线程的好方法。
您必须调用bindService()才能绑定到服务。然后,您可以使用AsyncTask或处理程序从服务中获取信息。
欲了解更多信息,请阅读:安卓开发者