怎么判断继承AsyncTask的类的实例execute()执行完了

pm南 2016-03-24 11:43:29
今天做一个项目,访问网络需要放在AsyncTask线程中执行,在线程的onPostExecute方法执行了一个为Map赋值的操作,紧接着下面的代码要用到这个map,但是好像没有执行onPostExecute方法就直接执行了下面调用map 的方法
GetPrepayIdTask getPrepayId = new GetPrepayIdTask();
getPrepayId.execute();
doAPPay();
没有执行onPostExecute就直接执行了doAPPay
...全文
225 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingzhong128 2016-03-24
  • 打赏
  • 举报
回复
doAPPay要放到onPostExecute里执行 AsyncTask会开一个新线程执行网络请求,在网络请求数据回来之后才会执行onPostExecute execute是一个异步执行(也就是非阻塞)的方法,它会开另外一个线程执行网络请求,不等网络请求到数据就直接返回。 感觉你把它理解成阻塞的方法,直接调用doAPPay结果就是网络请求还没结束就已经开始支付业务逻辑了
节操在此 2016-03-24
  • 打赏
  • 举报
回复
这是异步操作,AsyncTask的线程和主线程是互不干扰的,你主线程里的代码会依次从上往下执行,你想网络操作做完之后再去执行doAPPay就把这个方法放到onPostExecute里

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧