0

我开发了一个使用API​​级别7的基于选项卡的应用程序。它使用Android 2.1设备运行良好。但是当我试图在2.2设备上运行它的时候会产生问题。当我第一次访问任何标签时,它是可以的。但是,如果重新访问相同的选项卡,则会显示以下错误消息。Android高版本问题

android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭在这里

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

更令人惊讶的是,最初我在标签A.对于标签A我做了一些数据库操作。然后我去B标签没有问题,数据库操作也在同一个数据库中完成。然后,如果我回到选项卡A,它会发出此错误。如果是数据库和游标关闭相关的问题,当我从标签A到B时,它应该会出现异常。任何人都可以找到问题所在?

+0

您确定要关闭所有游标吗?在Activity中使用的游标可以自动关闭,每次从数据库返回一个游标时调用startManagingCursor(Cursor)。在之前做空检查(否则退出活动时会发生异常)。 –

+0

我已经在每次游标操作后使用游标关闭或者使用了call startManagingCursor(游标)。另外游标关闭问题也应该在2.1中上升。但在我看来,2.1中没有问题。它只在2.2中给出概率。 –

+0

是的,这很奇怪,它只发生在2.2。你是否也确定你没有打开数据库连接两次(以前没有关闭它)?编辑:我看到你正在关闭连接。 –

回答

0

这不是所有标签相关的概率。在onCreate()有一个代码 -

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

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