我有一个后续的AyncTask,我想在从互联网获取结果完成后创建的按钮上设置OnClickListener,但是执行 onPostExecute 时无需等待互联网获取完成。
std::prev
答案 0 :(得分:1)
从doInBackground返回后,将调用onPostExecute方法。在您的情况下,方法mHttpClient.fetchUserSecurityDetails的结果基于回调事件,而doInbackground不等待它。 由于doInBackground在Non UI线程中运行,因此您可以对方法进行更改以同步返回,而不是在回调中发送结果。
更改您的方法以返回结果,而不是通过回调。
isUserValid = mHttpClient.fetchUserSecurityDetails(userEmail);
另一种选择是使当前线程进入睡眠状态,直到收到回调事件,然后在获得返回结果后从doInbackground方法返回。