在我的Android应用程序中,我有时需要等待连接到网络的AsyncTask结束,以获得结果,然后继续,取决于结果的值! 这就是我们在同步之前没有A的同步任务。但是我该怎么做:我的意思是如果我不在AsyncTask中执行它会返回一个android.os.NetworkOnMainThreadException(而这是我想要做的),并且AsyncTask无法返回结果!!!
每个人都有答案?
非常感谢!
答案 0 :(得分:2)
我的意思是如果我不在AsyncTask中执行它会返回一个android.os.NetworkOnMainThreadException
没有。如果你不在后台线程中执行它(AsyncTask是这样做的一种方式),它将返回异常。
并且AsyncTask无法返回结果!!!
不正确的。 AsyncTask可以通过onPostExecute()
返回结果。这在The Documentation
我有时需要等待连接到网络的AsyncTask结束,以获得结果,然后根据结果的值继续进行!
好的,如果没有要完成的UI工作,请在获取结果时显示ProgressDialog。然后使用onPostExecute()
根据结果处理下一个任务。
This answer说明了任务完成后如何获得结果。
答案 1 :(得分:2)
每个人都有答案?
是。不要在主线程上进行联网。周期。
使用异步任务和异步任务的onPostExecute()
完全是为了在<{strong> doInBackground()
完成后完成工作。此外,onPostExecute()
正在UI线程上运行。所有这些is nicely documented。