AndroidAsyncTask详解-创新互联

(写在前面:文章是看了慕课上的教程之后写的,感谢http://www.imooc.com/learn/377)

成都创新互联为客户提供专业的成都网站制作、做网站、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、成都做手机网站等网站方面业务。

一、AsyncTask基本结构介绍

首先,顾名思义,AsyncTask是异步任务。

为什么要异步任务?

因为只有UI线程,即主线程可以对控件进行更新操作。好处是保证UI稳定性,避免多线程对UI同时操作。

同时要把耗时任务放在非主线程中执行,否则会造成阻塞,抛出无响应异常。

AsyncTask是安卓封装好的异步机制。(当然也可以自己写new thread,handler)

AsyncTask是抽象类,要被继承后使用,形如 AsyncTask

Params是启动任务时输入参数的类型,Progress是后台任务执行中返回进度值的类型,Result是后台任务执行完成后返回结果的类型。在下面的代码中会有介绍。

子类的方法:

doInBackgroud,继承后需要必须重写的方法,异步执行将要完成的任务。只有该方法是在子线程中执行,不能更新UI;下面的3个方法都是在主线程中执行,可以更新UI。

onPreExecute,执行操作前被调用,用于初始化。

onPostExecute,任务执行完后自动调用的方法,并将doInbackgroud的结果值传入该方法,即可以进行一些更新UI的操作。

onProgressUpdate,在doInBackgroud方法中调用publishProgress时被执行,可以更新任务的执行进度。

使用方法:

在UI线程中创建继承自Asynctask类的自定义的,

注意事项:

必须在UI线程中创建Asynctask示例,调用其execute方法。

重写的4个方法是系统自动调用的,不能手动调用。

二、使用AsyncTask加载网络图片以及使用AsyncTask模拟进度条


另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:AndroidAsyncTask详解-创新互联
网页地址:http://ybzwz.com/article/ijjdd.html