资源未关闭造成的内存泄漏
2017-03-19 00:16
113 查看
对于使用了BraodcastReceiver,ContentObserver,File,Cursor,Stream,Bitmap等资源的使用,应该在Activity销毁时及时关闭或者注销,否则这些资源将不会被回收,造成内存泄漏。例如获取媒体库图片地址代码在查询结束的时候一定要调用
Cursor 的关闭方法防止造成内存泄漏。
Cursor 的关闭方法防止造成内存泄漏。
String columns[] = new String[]{ MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID, MediaStore.Images.Media.TITLE, MediaStore.Images.Media.DISPLAY_NAME }; Cursor cursor = this.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, null); if (cursor != null) { int photoIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); //显示每张图片的地址,但是首先要判断一下,Cursor是否有值 while (cursor.moveToNext()) { String photoPath = cursor.getString(photoIndex); //这里获取到的就是图片存储的位置信息 Log.e("LeakCanary", "photoPath---->" + photoPath); } cursor.close(); }
相关文章推荐
- 转贴: 在使用SPSite对象时容易发生内存泄漏!造成内存泄漏的原因是没有正确地关闭SPSite对象
- 非静态内部类创建静态实例造成的内存泄漏
- 如何正确的打开和关闭相关Object,如 SPSite, SPWeb 等,从而避免内存资源的浪费?
- MediaPlayer源码存在的内存泄漏问题,释放资源的正确方式
- 利用WeakHashMap避免因缓存条目过期而造成的内存泄漏问题
- 【PHP内存泄漏案例】PHP对象递归引用造成内存泄漏
- Resource leak: 'sc' is never closed 资源泄漏:'sc'永远不会关闭
- delete一个void*可能会造成泄漏内存
- 关闭map窗口时,提示内存泄漏
- 请问如何强行释放所有已关闭的程序所残留的内存等资源?类似于微软的那个叫mem.exe的工具,如何入手呢?
- PHP对象递归引用造成内存泄漏
- 原创: WINCE 内存泄露的检查(2) 使用Application Verifier (AppVerifier)检查资源泄漏
- 在Cubieboard上关闭irqbalance服务避免内存泄漏
- Android内存泄漏(线程造成的内存泄漏与资源未关闭造成的内存泄漏)
- 在IE下的JS编程中,以下的编程方式都会造成即使关闭IE也无法释放内存的问题
- 【Bug】针对Handler造成的内存泄漏
- Intel UPNP lib的一个内存资源泄漏问题
- Google的桌面搜索引擎有不少内存和资源泄漏
- C# 文件读写与内存资源泄漏
- tomcat关闭后没有及时释放内存资源