Android中处理程序和AsyncTask之间的一个区别

Android中处理程序和AsyncTask之间的一个区别,第1张

概述为什么AsyncTask只能执行一项工作?例如, task = new SubAsyncTask(...); // assume the parameter is correct.task.execute(...) //task.execute(...)// calling once again, it throws exeception. 但是Handler可以连续执行多个任务: hd = 为什么AsyncTask只能执行一项工作?例如,

task = new SubAsyncTask(...); // assume the parameter is correct.task.execute(...) //task.execute(...)// calling once again,it throws exeception.

但是Handler可以连续执行多个任务:

hd = new Handler(...); // assume the parameter is correcthd.sendMessage(...); //hd.sendMessage(...);// no exeception is thrown.

AasyncTask对象只适用于一次性作业吗?如果我不想为类似的任务创建多个对象,我应该选择Handler吗?

解决方法 Handler和AsyncTasks是使用UI / Event Thread实现多线程的方法.

Handler允许向创建它的线程添加消息,并且还允许您在将来的某个时间安排某些runnable执行.

异步任务使您能够实现MultiThreading,而不会将其弄脏到线程中. Async Task提供了一些需要定义以使代码正常工作的方法.在onPreExecute中,您可以定义代码,这些代码需要在后台处理开始之前执行. doInBackground有需要在后台执行的代码,在doInBackground中我们可以通过publishProgress()方法将结果多次发送到事件线程,通知后台处理已经完成,我们可以简单地返回结果. onProgressUpdate()方法从doInBackground方法接收进度更新,该方法通过publishProgress方法发布,并且此方法可以使用此进度更新来更新事件线程,onPostExecute()方法处理doInBackground方法返回的结果.

因此,您不需要在AsyncTask多个TImes上调用execute方法,而是可以调用publishProgress.

总结

以上是内存溢出为你收集整理的Android中处理程序和AsyncTask之间的一个区别全部内容,希望文章能够帮你解决Android中处理程序和AsyncTask之间的一个区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存