android 开发之AsyncTask
一个界面上有多个gridview,页面进来的时候两个gridview都会进行异步加载,我曾经在一篇文章上看到AsyncTask对象一次只能有一个,那个两个gridview...
一个界面上有多个gridview,页面进来的时候两个gridview都会进行异步加载,我曾经在一篇文章上看到AsyncTask对象一次只能有一个,那个两个gridview是不相干的两个控件,他们在getview的时候会不会开启两个AsyncTask对象?像这种一个界面有多个adapter需要异步加载的情况怎么处理?新手,求老手指点
展开
展开全部
gridView异步加载有点麻烦,你如果是把数据一次性加载那还好办,但是你如果想在getView()的时候加载(比如加载每个图片),这个时候你就会启动了多个异步(调用一次getView启动一个异步),这样会报错的(开启的线程多了什么的问题)。
官方上得解决方法是:将AsyncTask也弄成了弱引用,这样就能及时回收了,具体操作你可以去看文档,有点复杂,这里解释不清。
我采用的是另一种方法:线程池 + runnable + handler办法,这样能保证getView()的时候是一个个加载图片,具体的过程你可以搜一下,demo有很多。
一个界面几个adapter其实说白了就是几个数据而已,你开启异步是为了什么,就是后台线程去启动去下载这些数据,完全可以在一个异步里加载这几个数据。
官方上得解决方法是:将AsyncTask也弄成了弱引用,这样就能及时回收了,具体操作你可以去看文档,有点复杂,这里解释不清。
我采用的是另一种方法:线程池 + runnable + handler办法,这样能保证getView()的时候是一个个加载图片,具体的过程你可以搜一下,demo有很多。
一个界面几个adapter其实说白了就是几个数据而已,你开启异步是为了什么,就是后台线程去启动去下载这些数据,完全可以在一个异步里加载这几个数据。
展开全部
怎么会,比如这两个gridview分别显示不同内容,那就是对应两个list。
一进入这个界面,马上就启动异步任务加载数据啊,在doinbackground中把数据存入这两个list。。。为了用户体验好一些,可以转动一个progressdialog
一进入这个界面,马上就启动异步任务加载数据啊,在doinbackground中把数据存入这两个list。。。为了用户体验好一些,可以转动一个progressdialog
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我目前的方法就是避免这个发生 我每次只载一个异步
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询