onPostExecute()是否不等待doInBackground()内部的线程完成?

时间:2018-11-02 16:30:43

标签: android

我有一个后续的AyncTask,我想在从互联网获取结果完成后创建的按钮上设置OnClickListener,但是执行 onPostExecute 时无需等待互联网获取完成。

std::prev

1 个答案:

答案 0 :(得分:1)

从doInBackground返回后,将调用onPostExecute方法。在您的情况下,方法mHttpClient.fetchUserSecurityDetails的结果基于回调事件,而doInbackground不等待它。 由于doInBackground在Non UI线程中运行,因此您可以对方法进行更改以同步返回,而不是在回调中发送结果。

更改您的方法以返回结果,而不是通过回调。

 isUserValid  = mHttpClient.fetchUserSecurityDetails(userEmail);

另一种选择是使当前线程进入睡眠状态,直到收到回调事件,然后在获得返回结果后从doInbackground方法返回。

相关问题