Android 游标或数据库未关闭错误
我使用sqlite制作了一些多活动数据库应用程序, 但我在logcat中收到错误消息,比如 终结尚未停用或关闭的游标 或数据库未关闭错误 我的应用程序似乎运行良好。 我尝试使用onDestroy或after查询或更改活动关闭游标和数据库, 但是,要么应用程序崩溃,要么我得到空指针异常或空listview 我想知道如果我保持现状我会面临什么问题, 例如数据库损坏或与其他应用程序的干扰 我还想知道我是否声明游标Android 游标或数据库未关闭错误,android,sqlite,Android,Sqlite,我使用sqlite制作了一些多活动数据库应用程序, 但我在logcat中收到错误消息,比如 终结尚未停用或关闭的游标 或数据库未关闭错误 我的应用程序似乎运行良好。 我尝试使用onDestroy或after查询或更改活动关闭游标和数据库, 但是,要么应用程序崩溃,要么我得到空指针异常或空listview 我想知道如果我保持现状我会面临什么问题, 例如数据库损坏或与其他应用程序的干扰 我还想知道我是否声明游标 protected Cursor a_cursor; 在第一个活动中,我是否需要在下一
protected Cursor a_cursor;
在第一个活动中,我是否需要在下一个活动中使用相同的声明
或者我需要使用
protected Cursor b_cursor;
类似地,对于第一个活动中的DbHelper、Context、Sqlitedatabase等,如
private SQLiteDatabase adb;
private DatabaseHelper aDbHelper;
private final Context aCtx;
到
在第二次活动中
程序的结构是这样的
DatabaseHelper--创建一些表或升级
DbAdapter—插入或更新表
Activity1--搜索表和listview--在列表项上单击--Activity2,
上下文菜单可向第二个表中添加一些详细信息
Activity2—Activity3的项目详细信息和按钮
活动3--编辑项目--返回
Activity4--第二个表列表视图
Activity5--数据库导入导出
对不起,如果我的问题看起来太幼稚或原始
但我不是程序员,这些应用程序是我个人使用的
不适合市场
事实上,我没有找到一个完整的例子来满足我的需要
所以我只是从很多例子中添加了一些位和peice来完成事情过去我们会说用它来处理这些事情。但既然添加了,我建议使用它来保持一切正常。光标加载器直到API级别10才被添加,但是您仍然可以通过
例如,使用游标加载程序,您可以签出此项(或相应项)。填充游标时,请尝试这样做
Cursor c;
try {
c = managedQuery...
lv.setAdapter(c);
} catch(...) {
} finally {
if(null!=c)
c.close()
}
如果im没有弄错,managedQuery在api级别10中已被弃用。在以前的项目中使用了它,因此有太多的memObj/cursor问题。是的,使用加载器。是的,这就是为什么我说“我们曾经使用过它”以及为什么我说他应该使用游标加载器。谢谢Kurtis的回复。我使用的是API 8,所以我可以使用managedQuery。你有managedQuery的代码片段或示例吗?我还没有找到任何解决这个荒谬错误的方法。就我而言,我正在关闭一切,但安卓不同。我将为游标加载程序构建API 10之后的所有内容。还有关于数据库损坏问题和游标库声明的任何评论Josephus,我将尝试此操作并发布结果我认为managedQuery仅适用于内容提供商,因此我可能不会使用此功能
Cursor c;
try {
c = managedQuery...
lv.setAdapter(c);
} catch(...) {
} finally {
if(null!=c)
c.close()
}