关闭

java.lang.IllegalStateException: Process 20535 exceeded cursor quota 100, will kill it

标签: 测试android调试数据库游标
3651人阅读 评论(0) 收藏 举报
分类:

这是一个SQLiteAndroid嵌入的数据库测试程序。

在添加的时候,每次启动程序都会自己再次插入一遍(不能做到数据库有的信息不插入,id是自动生成的)

上网找了一下方法说是添加什么触发器(话说SQL的触发器还可以,android的,额,这就不用说了)。

那只好插入的时候再次查找一遍,判断是否是第一次插入。

好了这个时候就出现问题了。

代码如下:

/**
	 * 保存数据
	 * flag判断数据是否以前插入过
	 * @param appInfos
	 */
	public void save(ArrayList<Country> appInfos) {
		drop();
		Cursor cursor1 = null;
		boolean flag = false;
		try {
			db = this.open();
			
			if (appInfos == null) {
				return;
			}
			for (Country appInfo : appInfos) {
				flag = false;
				cursor1 = db.rawQuery("select * from " + DBHelper.SORT_DB
						+ " where name='" + appInfo.name + "'", null);
				if (cursor1 != null && cursor1.moveToFirst()){
					flag = true;
				}
				if(!flag){
					db.execSQL("insert into " + DBHelper.SORT_DB
							+ "(name,target) values(?,?)", new Object[] {
							appInfo.name, appInfo.target });
				}
				cursor1.close();
			}
		} finally {
			
			if (db != null)
				db.close();
		}
	}

开始的时候判断是放在外边(另外一个函数),在网上找说是使用游标时一定要关闭。

好吧以为打开了再次调用函数会出现冲突,那就放在里面。

但是还是有这个错误,最后找到for循环里面每次都会给Cursor复制,所以在下次使用前一定关闭。

不知道说的对不对,但是这样做结果出来了。

有大神路过的求指教。

0
0
查看评论

android Process 18869 exceeded cursor quota 100, will kill it

cursor 没关,       cursor == null;    try{
  • zgf1991
  • zgf1991
  • 2014-08-08 17:40
  • 3132

Cursor 引起的android程序崩溃异常解决方法

前两天遇到个android程序异常,一直没机会写。今天稍微总结一下。 这个项目是我第一个android项目,使用SQLite导入一个字典库,在android里调用游标Cursor类对其读取。 private String getWordsFromDB(int int1, String str1){...
  • jinlanhai
  • jinlanhai
  • 2013-10-05 12:48
  • 2766

Caused by: java.lang.IllegalStateException: Process 9461 exceeded cursor quota 100, will kill it

cursor 未关闭 Cursor cursor = ...; try { if (cursor.moveToFirst()) return getThumbnailById(cr, cursor.getLong(0)); else return ...
  • ccclll1990
  • ccclll1990
  • 2015-07-10 18:27
  • 579

新手教你学Spring4.0+Maven构建超级简单的Web项目(三)

本篇博客是在(一)和(二)之上的扩展。因本人很不喜欢MyEclipse,故诞生了此篇。整体环境:Intellij idea15
  • mengzuixilou
  • mengzuixilou
  • 2016-10-12 14:52
  • 1037

在Java中正确解码用Javascript:escape()编码的中文字符

原文:点击打开链接    做页面开发时使用了JavaScript的escape()函数进行URL编码,如果url中有中文,结果在JSP或Servlet中用request.getParameter()时取不到参数,只返回一个空值。经过Baidu的搜索,结合我自己的工作...
  • hongweibing1
  • hongweibing1
  • 2017-08-08 17:20
  • 372

space quota exceeded for tablespace(表空间不足)

space quota exceeded for tablespace(表空间不足):解决之道 方法一(测试成功):SQL> alter user "用户"quota unlimited on "表空间名";     User alt...
  • abudula
  • abudula
  • 2009-02-27 14:50
  • 4673

IT忍者神龟之 配额不足的解决方法ORA-01536: space quota exceeded for tablespace

今天有同事反映最近几天的数据在oracle中查不到。检查TT的错误日志显示:TT5211: TT5211: Oracle out of resource error in OCIStmtExecute(): ORA-01536: space quota exceeded for tablespace...
  • vipyhd
  • vipyhd
  • 2014-09-13 20:52
  • 1993

【Servlet+Struts2】文件下载时抛出java.lang.IllegalStateException异常的解决方法

java.lang.IllegalStateException这种异常,不代表文件不能下载,不代表程序写错,它在Tomcat抛出完异常之后依然能够正常运行的。只是看着不爽而已,每次下载都要在Tomcat抛出一大堆异常。 java.lang.IllegalStateException主要是用了后台把...
  • yongh701
  • yongh701
  • 2015-04-02 10:44
  • 1121

使用retrofit+rxjava报java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread

该问题原因很简单。因为导入的包版本不一致。 解决方法,将拦截器和okhttp的般片设置一致即可。例如: compile 'com.squareup.okhttp3:okhttp:3.3.1' compile 'com.squareup.okhttp3:logging-i...
  • zqbemail10
  • zqbemail10
  • 2017-03-18 03:06
  • 326

Disk quota exceeded 导致NoClassDefFoundError

1 发现页面突然不好用了: 异常 java.lang.NoClassDefFoundError: Could not initialize class com.taobao.jingwei.server.util.HttpPost 堆栈有cglib com.taobao.jingwei...
  • arkblue
  • arkblue
  • 2014-12-05 22:21
  • 1154
    个人资料
    • 访问:290105次
    • 积分:3998
    • 等级:
    • 排名:第9351名
    • 原创:329篇
    • 转载:17篇
    • 译文:10篇
    • 评论:35条
    博客专栏
    最新评论