gpt4 book ai didi

android - 在 Android 的 SQLiteCursor 中防止 IllegalStateException

转载 作者:IT王子 更新时间:2023-10-29 06:24:56 31 4
gpt4 key购买 nike

我有一个绑定(bind)到光标的 ListActivity,当 ListView 中的项目被选中时,EditItem Activity 由 startActivityForResult,此 EditItem Activity 执行多个查询,每个查询都放在自己单独的 Cursor 中。这些用于填充微调器,很像 Access DB 中的查找字段。

我的问题是,一旦用户通过提交、取消或后退按钮离开此 EditItem Activity ,就会返回到 ListView Activity 并在ListView(相同的项目或不同的项目)我在我的 SQLiteCursor 类(Android 的,不是我的)中得到 IllegalStateException 错误。我正在两个 Activity 的onDestroy 方法中关闭我的游标,因为有时调用结果仍会破坏调用 Activity 。

这并不总是发生在第二次选择一个项目时,有时它会发生在第三次选择时。我想也许我只是比操作系统移动得更快,所以我开始暂停,最多 30 秒,在我的操作之间,只有在第二次或第三次调用 Activity 以获得结果后才会抛出错误。没有多少暂停可以解决这个问题。

编辑:错误出在 SQLiteCursor finalize 方法中调用 super.finalize();

编辑#2:线程的堆栈跟踪:

Daemon System Thread [<5> HeapWorker] (Suspended (exception IllegalStateException)) 
SQLiteCursor.finalize() line: 603
NativeStart.run() line: not available [native method]

编辑 #3 来自 LogCat 的堆栈跟踪(partslist 是表名):

INFO/dalvikvm(599): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@437541a0 on partslist that has not been deactivated or closed
INFO/dalvikvm(599): at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
INFO/dalvikvm(599): at dalvik.system.NativeStart.run(Native Method)

最佳答案

确保在完成它们后 cursor.close()

关于android - 在 Android 的 SQLiteCursor 中防止 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907564/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com