使用Content Provider Cursor

时间:2013-12-19 21:08:58

标签: android eclipse android-contentprovider

我写了两个应用程序。一个用于创建数据并存储在数据库中,另一个用于显示来自第一个应用程序数据库的信息。我需要这两个是独立的应用程序。显示信息的第二个应用程序必须多次调用第一个应用程序的数据库。这一切都运行良好,但我无法在第一个应用程序的内容提供商中关闭数据库。我在Closing the database in a ContentProvider读到我不应该认为哪个好。问题是因为我正在开发第二个应用程序,Eclipse的Logcat只是充斥着未封闭的数据库消息。每个查询一条消息,我一次进行多个查询。

最后一个问题:是否有办法设置Eclipse不显示此特定错误消息,或者将消息过滤掉logcat?

由于 TJ

1 个答案:

答案 0 :(得分:1)

编辑:

请务必致电:

getReadableDatabase()

一次,按照:

How to avoid db not close and cursor exception

每当你从光标中提取信息时,你需要调用:

cursor.close();

所以,如果你有一些电话:

public void parseValsFromCursor(Cursor C) {
  String val = c.getString(c.getColumnIndex(MYCOLUMN));
  Log.e(TAG,val);

 }

然后你尝试做另一个db查询,你会看到这个错误。

修复是修改游标解析代码以包含.close()方法,如下所示:

public void parseValsFromCursor(Cursor C) {
  String val = c.getString(c.getColumnIndex(MYCOLUMN));
  Log.e(TAG,val);
  c.close();
 }