开发应用中,如何避免崩溃错误

开发应用中,如何避免崩溃错误

ID:32949584

大小:56.05 KB

页数:7页

时间:2019-02-18

开发应用中,如何避免崩溃错误_第1页
开发应用中,如何避免崩溃错误_第2页
开发应用中,如何避免崩溃错误_第3页
开发应用中,如何避免崩溃错误_第4页
开发应用中,如何避免崩溃错误_第5页
资源描述:

《开发应用中,如何避免崩溃错误》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、开发应用中'如何避免崩溃错误www.moliying.com【活动链接】威哥视频获取通道我们在开发应用的过程中,总是会出现崩溃错误,那么,这是为什么呢?由于什么导致又如何避免呢?今天,我们就来总结下Android中的内存问题!(一)查询数据库没有关闭游标(二)构造Adapter时,没有使用缓存的convertView(三)Bitmap对象不在使用时调用recycle。释放内存(四)释放对象的引用(一)查询数据库没有关闭游标【描述】程序中经常会进行查询数据库的操作,但是经常会冇使用完毕Cursor后没有关闭的情况。如果我们的查询结果集比较小,对内存的消耗不容易被发现,只有在常时间大量操作的情况

2、下才会复现内存问题,这样就会给以后的测试和问题排查带来困难和风险。【示例代码】Cursorcursor=getContentResolver().query(uri...);if(cursor.moveToNext()){Cursorcursor=null;try{cursor=getContentResolver().query(uri...);讦(cursor!=null&&cursor.moveToNext()){}}finally{if(cursor!=null){try{cursor.closef);}catch(Exceptione){〃ignorethis}}}

3、www.moliying.com(二)构造Adapter时,没有使用缓存的convertView【描述】以构造ListView的BaseAdapter为例,在BaseAdapter屮提高了方法:publicViewgetView(intposition,ViewconvertView,ViewGroupparent)来向ListView提供每一个item所需要的view对象。初始时ListView会从BaseAdapter中根据当前的屏幕布局实例化一定数量的view对象,同时ListView会将这些view对象缓存起来。当向上滚动ListView时,原先位于最上血的listitem的view

4、对象会被回收,然后被用来构造新出现的最下面的listitemo这个构造过程就是由getView()方法完成的,getView()的第二个形参ViewconvertView就是被缓存起来的listitem的view对象(初始化时缓存中没有view对象则convertView是null)。由此可以看出,如果我们不去使用convertView,而是每次都在getViewf)中重新实例化一个View对象的话,即浪费资源也浪费时间,也会使得内存占用越來越大。ListView回收listitem的view对象的过程可以查看:android.widget.AbsListView.java・・>voi

5、daddScrapView(Viewscrap)方法。【示例代码】publicViewgetView(intposition,ViewconvertView,ViewGroupparent){Viewview=newXxx(...);returnview;}【修正示例代码】publicViewgetView(intposition,ViewconvertView,ViewGroupparent){Viewview=null;讦(convertView!=null){view=convertView;populate(view,getltem(position));}else{view=new

6、Xxx(…);returnview;}www.moliying.com(三)Bitmap对象不在使用时调用recyclef)释放内存【描述】有时我们会手工的操作Bitmap对象,如果一个Bitmap对象比较占内存,当它不在被使用的时候,可以调用Bitmap.recycle()方法回收此对象的像素所占用的内存,但这不是必须的,视情况而定。可以看一下代码中的注释:/***Freeupthememoryassociatedwiththisbitmap'spixels,andmarkthe*bitmapas"dead",meaningitwillthrowanexceptionifgetPi

7、xels()or*setPixels()iscalled,andwilldrawnothing.Thisoperationcannotbe*reversed,soitshouldonlybecalled讦youaresurethereareno*furtherusesforthebitmap・Thisisanadvaneedcall,andnormallyneed*notbecalled,sincetheno

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。