Android之AsyncTask的使用

本文介绍如何使用AsyncTask避免在Android应用中出现ANR(Application not responding)现象。通过将耗时任务从UI线程转移到后台线程执行,并利用doInBackground和onPostExecute方法正确更新UI,确保良好的用户体验。
摘要由CSDN通过智能技术生成

我们知道如果在UI线程(主线程)中执行耗时操作,比如说在 ui线程 里写一个 for循环,

for(int i = 0; i < 100; i ++)
{
    Thread.sleep(1000);
}

让主线程循环100次,每次都睡1秒,omg....

就会出现ANR (Application not responding),也就是无法响应,不管你在屏幕如何点击滑动,程序没有任何响应,这给用户的体验是极差的。

所以我们要使用后台线程去执行耗时操作咯:

上回用的是: <a href="http://blog.csdn.net/dummyo/article/details/78956084">FutureTask 和 Callable</a>

这回我们用AsyncTask. 它的用法很简单,继承AsyncTask,并重写它的  doInBackground(Void....params)方法即可。


在doInBackground写耗时操作,然后你想拿到这个耗时操作返回的结果,更新显示在ui界面上,

注意,不要再doInBackground里面更新ui,因为这是线程不安全的,Android只允许在主线程里更新ui。

不方^_^,重写onPostExecute()方法,它会在doInBackground()方法执行结束后执行,更爽的是:它是在主线程而非后台线程上运行的。因此他会拿到doInBackground()方法返回的值,然后在这个方法里面操作ui就行啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值