返回

海口秀英区web前端培训海口龙华区IT培训

AsyncTask解决Android UI堵塞问题

java学习网更新时间:2021-10-16 浏览:122

平常我们在开发设计Android程序流程时碰到较用时每日任务的解决,如I/O浏览的数据库操作、互联网浏览等状况时导致UI诈死等难题,根据 AsyncTask能够非常好的处理这个问题,就今日以在Android中实行Downloader.downloadFile(url),很有可能会阻塞全部 页面。显而易见这会危害客户体验,大家如何解决这个问题呢?

方式 一、

建立一个新的进程实行大家的每日任务,应用Thread类,在 run(){}中载入每日任务编码,例如:

new Thread(new Runnable() {

public void run() {

Downloader.downloadFile(url);

}

}).start();

但应用Thread会造成一些出乎意料的难题,*须程序猿用大量的编码手动式的维护保养它。

方式 二: Android SDK为大家给予了一个后台任务的解决专用工具AsyncTask。AsyncTask便是一个封裝过的后台任务类说白了便是多线程每日任务,便捷大家维 护,Android开发设计网提醒那样的益处能够处理一些线程安全难题,AsyncTask立即承继于Object类,部位为 android.os.AsyncTask。要应用AsyncTask工作中我们要给予三个泛型主要参数,并轻载四个方式 (最少轻载一个)。

三个泛型:

Param ,每日任务电动执行机构*须的基本数据类型

Progress 后台管理测算中应用的进展企业基本数据类型

Result 后台管理测算回到結果的基本数据类型

有一些主要参数是能够设定为不应用的,只需传送为Void型就可以,例如AsyncTask

四个流程:

onPreExecute(),实行预备处理,它运作于UI进程,能够为后台任务做一些准备工作,例如制作一个时间轴控制。

doInBackground(Params...), 后台进程实行的实际测算在这儿完成,doInBackground(Params...)是AsyncTask的重要,此方式 务必轻载。在这个方式 内能够 应用publishProgress(Progress...)更改当今的进展值。

onProgressUpdate(Progress...), 运作于UI进程。假如在doInBackground(Params...)中应用了publishProgress(Progress...),便会触 发这一方式 。在这儿能够对时间轴控制依据进展值作出实际的回应。

onPostExecute(Result),运作于UI进程,能够对后台任务的 結果作出解决,結果便是doInBackground(Params...)的传参。此方式 还要常常轻载,假如Result为null说明后台任务沒有 进行(被撤销或是发现异常)。

相关资讯

c++ vector 使用效率问题
2021-07-15 361
1. vector中的erase方式 高效率是很低。由于为了更好地维持vector中原素在存储空间中的持续性,在删掉某一原素以后,*将之后...
云计算技术与应用学什么东西
2021-07-16 288
云计算技术与应用是学什么的?众所周知,云计算技术是当前的热门技术, 云计算专*技*人才是香饽饽,计划学习云计算技术与应用...
初学者适合学习哪些编程语言
2021-07-15 261
许多同学想改行程序编写,可是那么多的计算机语言究竟该怎么选呢?头痛~如果你是一名具备创新性的开发人员或是想变成一名具备展望工作能力的开发人员得话,那麼,你应该最少在**是的计算机语言中挑选一个,相近 Python, JavaScript, C#, C++, PHP, Java, 或是 go...
java技术有哪些优点优势
2021-07-15 239
Java技术性有以下优势:简易、面向对象编程、分布式系统、表述实行、鲁棒性、安全性、系统架构保持中立、生命期、性能卓越、线程同步及其动态...
Java未来发展的趋势
2021-06-15 227
没有Java,甚至不会有大数据的大发展,Hadoop本身就是用Java编写的。当你需要在运行MapReduce的服务器集群上发布新功能时,你需...
C++的用处
2021-07-08 219
C++是C语言的继承,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承...
北京达内教学怎么样 北京达内教育学习环境好吗
2021-07-15 218
日给大伙儿分享一些有关达内教育学习中心的相片,了解一下达内教育学习中心自然环境怎样。下边就跟随我一起来吧...
学什么技术有前途 Java怎么样
2021-07-19 215
如今正是互联网信息时代,随着时代的变迁肯定会发展的越来越好,而Java编程语言是最于我们生活息息相关的,用处范围广泛,比如:...

相关课程

栏目导航