android 开发之AsyncTask

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 开发之AsyncTask相关的知识,希望对你有一定的参考价值。

一个界面上有多个gridview,页面进来的时候两个gridview都会进行异步加载,我曾经在一篇文章上看到AsyncTask对象一次只能有一个,那个两个gridview是不相干的两个控件,他们在getview的时候会不会开启两个AsyncTask对象?像这种一个界面有多个adapter需要异步加载的情况怎么处理?新手,求老手指点

gridView异步加载有点麻烦,你如果是把数据一次性加载那还好办,但是你如果想在getView()的时候加载(比如加载每个图片),这个时候你就会启动了多个异步(调用一次getView启动一个异步),这样会报错的(开启的线程多了什么的问题)。
官方上得解决方法是:将AsyncTask也弄成了弱引用,这样就能及时回收了,具体操作你可以去看文档,有点复杂,这里解释不清。
我采用的是另一种方法:线程池 + runnable + handler办法,这样能保证getView()的时候是一个个加载图片,具体的过程你可以搜一下,demo有很多。

一个界面几个adapter其实说白了就是几个数据而已,你开启异步是为了什么,就是后台线程去启动去下载这些数据,完全可以在一个异步里加载这几个数据。
参考技术A 怎么会,比如这两个gridview分别显示不同内容,那就是对应两个list。
一进入这个界面,马上就启动异步任务加载数据啊,在doinbackground中把数据存入这两个list。。。为了用户体验好一些,可以转动一个progressdialog
参考技术B 我目前的方法就是避免这个发生 我每次只载一个异步

以上是关于android 开发之AsyncTask的主要内容,如果未能解决你的问题,请参考以下文章

[转]android开发之字节顺序

Android进阶(二十三)Android开发过程之实例讲解

Android开发之Notification

Android开发之消息机制

Android 开发之 ---- 底层驱动开发

勤拂拭软件Android开发之旅 之 Android 开发环境搭建