广州列举网 > 商务服务 > 网站/软件服务 > java安卓开发 Adapter未运用缓存的con
广州
[切换城市]

java安卓开发 Adapter未运用缓存的con

更新时间:2016-03-03 19:00:11 浏览次数:104次
区域: 广州 > 经济开发区
类别:网站推广
地址:广州市天河区棠下金棠大厦D20

ListView供给每一个item所需求的view目标,初始时ListView会从BaseAdapter中依据当前的屏幕规划实例化必定数量的View目标,一起ListView会将这些view目标缓存起来。当向上滚动ListView时,原先坐落上面的Item的View目标会被收回,然后被用来结构新呈现的下面的Item。这个结构进程即是由getView()办法完成的,getView()的第二个形参View convertView即是被缓存起来的list item的view目标(java安卓开发 www.m***)。由此可以看出,假如咱们不去运用 convertView,而是每次都在getView()中从头实例化一个View目标的话,即浪费资本也浪费时刻,也会使得内存占用越来越大。ztwgn5rk

Handler内部类内存走漏

当运用内部类(包含匿名类)来创立Handler的时分,Handler目标会隐式地持有一个外部类目标(通常是一个Activity)的引证,而Handler通常会伴随着一个耗时的后台线程(例如从网络拉取图像)一起呈现,这个后台线程在使命履行完毕(例如图像下载完毕)今后,经过音讯机制告诉Handler,然后Handler把图像更新到界面。但是,假如用户在网络恳求进程中封闭了Activity,正常状况下,Activity不再被运用,它就有可能在GC查看时被收回掉,但因为这时线程尚未履行完,而该线程持有Handler的引证,这个Handler又持有Activity的引证,就致使该Activity无法被收回(即内存走漏),直到网络恳求完毕(例如图像下载完毕)。别的,假如你履行了Handler的postDelayed()办法,该办法会将你的Handler装入一个Message,并把这条Message推到MessageQueue中,那么在你设定的delay到达之前,会有一条MessageQueue -> Message -> Handler -> Activity的链,致使你的Activity被持有引证而无法被收回。可以在Activity完毕后,封闭线程,假如你的Handler是被delay的Message持有了引证,那么调用removeCallbacks办法来移除音讯队列。

广州市港启信息科技有限公司【简称:港启软件】(SLT)成立于2012年,总部坐落广州市天河区棠下金棠大厦D20,
致力于为中国公司供给全部互联网电子商务解决方案,包含网站建造,移动手机APP开发、互联网营销推行效劳,是国内互联网职业公司。
全国效劳热线020-29816913 020-29816912
java安卓开发 www.m***

广州网站/软件服务相关信息
2024-12-27
注册时间:2015年02月09日
UID:187695
---------- 认证信息 ----------

查看用户主页