【问题标题】:Android higher version issue安卓高版本问题
【发布时间】:2011-06-28 12:28:22
【问题描述】:

我使用 API 级别 7 开发了一个基于选项卡的应用程序。它在 Android 2.1 设备上运行良好。但是当我尝试在 2.2 设备中运行它时出现问题。当我第一次访问任何标签时,都可以。但是如果重新访问同一个选项卡,它会给出以下错误消息。

android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭此处打开的游标或数据库对象

但在 2.1 设备中没有这样的问题。这里我想提一下,我已经关闭了任何选项卡的每个活动中的数据库连接。

更令人惊讶的是,最初我在选项卡 A。对于选项卡 A,我做了一些数据库操作。然后我毫无问题地转到选项卡 B,其中数据库操作也使用相同的数据库完成。然后,如果我回到选项卡 A,则会出现此错误。如果是数据库和游标关闭相关的问题,当我从选项卡 A 转到 B 时应该会出现异常。谁能找到问题所在?

【问题讨论】:

  • 您确定要关闭所有游标吗? Activity 中使用的游标可以自动关闭,只需在每次从数据库返回游标时调用 startManagingCursor(Cursor) 即可。之前做一个空检查(否则退出活动时会出现异常)。
  • 我在每次游标操作后都使用了游标关闭,或者使用了调用 startManagingCursor(Cursor)。此外游标关闭问题也应该在 2.1 中出现。但就我而言,2.1 没有问题。它仅在 2.2 中给出概率。
  • 是的,奇怪的是它只发生在 2.2 中。您还确定您没有两次打开数据库连接(并且之前没有关闭它)吗?编辑:我看到你正在关闭连接。

标签: android database-connection android-2.2-froyo android-2.0-eclair


【解决方案1】:

这根本不是标签相关的问题。在onCreate() 中有一个代码-

datePickerDialog = new DatePickerDialog(getParent(), ButtonTestDateListener,
                mYear, mMonth, mDay);

我刚刚将mYearmMonthmDay 声明为整数,但没有初始化。它在 2.1 中工作正常,但在 2.2 中给出概率。在此之前我已经打开了数据库连接并且没有关闭它。这就是为什么它会出现这样的问题。

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 2018-11-24
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多