从AsyncTask上的doInBackground方法返回到UI是否有可能导致意外的竞争条件?使用'get'可以让UI等待计算返回结果,但这似乎打败了在后台运行任务的目标。
相关文件:
https://developer.android.com/reference/android/os/AsyncTask.html
答案 0 :(得分:0)
doInBackground在另一个线程上运行,所以它当然会导致竞争条件 - 任何时候你有两个线程,或者一个线程和异步事件传入你可能会有竞争条件。你总是需要编码以避免它们。但是,从doInBackground到onPostExecute的值的返回不会,因此您可以安全地在线程之间传递数据而无需竞争。