0

我收到以下错误:

06-05 22:30:29.004: E/Database(410): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here

现在因为我看到了那个错误,我添加了以下代码:

@Override
public void onDestroy() {
    if (datasource != null) {
        datasource.close();
    }

    if (pdatasource != null) {
        pdatasource.close();
    }

    super.onDestroy();
}

datasource并且pdatasource在活动类中都是私有的。

我只是想知道为什么即使我添加了将显式关闭它的代码,如果它为空并且活动已被破坏,我仍然在控制台中收到此错误?它不会导致崩溃或任何事情,但我不想在将此应用程序投放市场之前出现任何错误。

4

1 回答 1

0

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

您的代码看起来干净且正确。我猜你最有可能在你忘记关闭的应用程序中有一些“被遗忘的”数据库变量。看看这个。

注意:还要检查使用Cursor的变量(它们也应该在应用程序被销毁之前关闭)。

于 2013-06-05T22:49:22.513 回答