android - 使用内容提供者游标

标签 android eclipse android-contentprovider

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

最后的问题是:有没有办法将 Eclipse 设置为不显示此特定错误消息,或者将消息从 logcat 中过滤掉?

谢谢 田杰

最佳答案

编辑:

确保你只调用:

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);

 }

然后您尝试执行另一个数据库查询,您将看到此错误。

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

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

关于android - 使用内容提供者游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20691711/

相关文章:

java - e4 中一个元素上的多个 css 类

android - 多个 ContentProvider 可以提供相同的 URI 吗?

android - 无法从三星设备的通话记录中删除短信记录

android - 动画仅在第一次单击按钮时有效

android - ListView 占用了 LinearLayout 中的所有空间

java - android.view.InflateException : Binary XML file line #11: Binary XML file line #39: Error inflating class support. v4.view.ViewPager

java - 如何检索此 fragment 中的歌曲列表?

android - 使用应用内支付购买完整版游戏

eclipse - 找不到模拟 assertEquals

java - Eclipse 中 Thread.run() 的调用层次结构