开发者社区> 问答> 正文

Task任务执行完之后,另外执行一个回调,或者也应该有一个任务完成之后的Completed事件吧?

QQ图片20190812142638.png

在使用Task的时候,会异步执行一段任务,主线程会继续执行。但是一直未发现Task有这么一个功能呢:就是Task任务执行完之后,另外执行一个回调,这应该是一个很常用的功能吧?或者也应该有一个任务完成之后的Completed事件吧?请问各位老师

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客mxpnxp6g3cq7o 2019-08-12 14:34:46 902 0
1 条回答
写回答
取消 提交回答
  • 一个任务AsyncTask任务只能被执行一次。由于Handler需要和主线程交互,而Handler又是内置于AsnycTask中的,所以,AsyncTask的创建必须在主线程。AsyncTaskResult的doInBackground(mParams)方法执行异步任务运行在子线程中,其他方法运行在主线程中,可以操作UI组件。不要手动的去调用AsyncTask的onPreExecute, doInBackground, publishProgress, onProgressUpdate, onPostExecute方法,这些都是由Android系统自动调用的运行中可以随时调用cancel(boolean)方法取消任务,如果成功调用isCancelled()会返回true,并且不会执行 onPostExecute() 方法了,取而代之的是调用 onCancelled() 方法。而且从源码看,如果这个任务已经执行了这个时候调用cancel是不会真正的把task结束,而是继续执行,只不过改变的是执行之后的回调方法是 onPostExecute还是onCancelled。

    答案来源于网络

    2019-09-27 19:03:44
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载