Cursor循环内再申请Cursor,记得将内部申请的每个Cursor都加上close
ContentResolver resolver = getContentResolver();Uri URI = ContactsContract.Contacts.CONTENT_URI;String[] columns  = new String[] {ContactsContract.Contacts._ID,PhoneLookup.DISPLAY_NAME};//查询联系人ID和联系人名称两列Cursor cursor = resolver.query(URI, columns, PhoneLookup.HAS_PHONE_NUMBER+"=1", null, null);//限定只返回有号码的联系人while(cursor.moveToNext()){String phoneNum="";Cursor cursor2=resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER}, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+cursor.getLong(0), null, null);//因为号码与联系人不存在一个表中,一个联系人可能存在多个号码,//所以根据联系人ID查找号码,存在phoneNum中while(cursor2.moveToNext()) {phoneNum+=cursor2.getString(0)+"||";//循环把该联系的所属的号码加进phoneNum}cursor2.close();//同学,就是这里了,cursor里申请第二个cursor2,//记得将每个cursor2给关闭了,不然就资源泄漏了。 Log.d("LocTestDemo", "--" + cursor.getLong(0) + ":" + cursor.getString(1) + "::" + phoneNum);//往JSONArray里添加一个联系人信息singer = new JSONObject();try {singer.put("id", cursor.getLong(0));singer.put("name", cursor.getString(1));singer.put("phone", phoneNum);} catch (JSONException e) {e.printStackTrace();}singers.put(singer);}cursor.close();//这里其实还得加上try,里外的Cursor都要加,//在catch里判断cursor是否为空,不为空还得给关闭。

cursor循环内再申请cursor记得将内部申请的每个cursor都关闭

Cursor finalized without prior close()相关推荐

  1. SugarORM框架又一坑--“Cursor finalized without prior close()”问题解决

    数据库中的事务,要么全做,要么不做.-----箴言----- 1.背景: 使用Android SugarORM框架进行数据持久化: 在查询时出现"Cursor finalized witho ...

  2. android strictmode有什么作用,Android StrictMode运行流程(推荐)

    什么是 StrictMode(严苛模式) strictmode是android在 API9后引入的检测影响app运行流畅性的一种机制,例如我们都知道的主线程中不允许有网络操作这条规则就是严苛模式规则的 ...

  3. Monkey测试com.android.browser 发 生类似android.datab

    [DESCRIPTION] monkey测试com.android.browser模块时,可能会遇到如下exception: // CRASH: com.android.browser (pid 17 ...

  4. python关于row的规范_Python DB-API 2.0规范

    Python DB-API 2.0规范 PEP: 249 标题: Python Database API Specification v2.0 版本: 83893e13db91 作者: Marc-An ...

  5. SQL游标(cursor)详细说明及内部循环使用示例

    游标 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果.每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理. 游标是处理 ...

  6. SQL Cursor(游标)

    1.游标在数据表没有id(identity(1,1))时好用,但是游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量 2.如果能不用游标,尽量不要使用游标,用完用完之后一定要 ...

  7. SQL SERVER CURSOR

    一:认识游标 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集. 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式. 用SQL语言从数据库中检索数据 ...

  8. 在SqlServer存储过程中使用Cursor(游标)操作记录

    1. 为何使用游标:      使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式.用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的 ...

  9. SQL Server 数据库的维护(四)__游标(cursor)

    --维护数据库-- --游标(cursor)-- --概述: 注:使用select语句查询结果的结果集是一个整体,如果想每次处理一行或一部分行数据,游标可以提供这种处理机制.可以将游标理解为指针.指针 ...

  10. SQL SERVER 参考:游标(Cursor)的讲解与实例

    在数据库中,游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制.游标总是与一条T_SQL ...

最新文章

  1. mysql在linux下的安装
  2. ibm笔记本电脑电池_开善乡 2.0间距笔记本电池连接器公座 11P电池座接口
  3. 网络工程学习资料2---IEEE 802 标准集合
  4. 换系统后mysql环境不见了_电脑重装系统后如何恢复Mysql数据库
  5. java date oracle_java对象属性为date oracle数据库字段为Timestamp 处理方式
  6. beetl模板引擎之自定义html标签,Beetl模板引擎自定义分页标签
  7. 删除数据库的表中某字段的值《转》
  8. mysql mac 中文乱码_Mac mysql 解决中文乱码
  9. mariadb mysql表_mysql/mariadb学习记录——创建删除数据库、表的基本命令
  10. real-time RGB-D camera relocalization
  11. python基础算法面试_【归纳】面试中常见的python基础知识
  12. 主生产计划 操作教程 用友u8_用友U860_主生产计划用户使用手册.pdf
  13. Java URLDecoder和URLEncoder
  14. ASEMI双向可控硅BTA12A,详解BTA12A参数应用与特性
  15. WIFI下无法登录百度网盘
  16. 使用存储过程返回结果集
  17. 小组项目--闲置物品交换系统-第一周
  18. CTF—RGB三原色
  19. 天邑ty1208-z,湖北高安版,线刷固件-免TTL激活方法
  20. python计算存款_第一部分:趣味算法入门;第七题:最佳存款方案

热门文章

  1. python open 函数漏洞_input()函数中的Python漏洞
  2. java csv api_CSVAPIforJava
  3. python解析xml选用什么模块_什么是适合Python的XML流解析器?
  4. 使用CefSharp在.NET中嵌入Google kernel
  5. 尚硅谷Docker---docker安装及简介
  6. 9447 CTF:no-strings-attached
  7. 操作系统总结之 输入输出系统(下)
  8. 快速排序算法--两个小人扔萝卜
  9. Spring Cloud Config分布式配置中心(学习总结)
  10. Spring实现Controller中方法参数校验