我有一个应用程序,它使用光标rawQuery
从 SQLite DB 中选择数据以填充 Android 中的 ListView。每次用户单击列表视图项时,我都会创建一个新的 Activity 实例来重新填充列表视图。
调用cursor.close()
并db.close()
避免内存问题更好吗?我实际上db.close()
参与OnDestroy()
了我的活动。
我有一个应用程序,它使用光标rawQuery
从 SQLite DB 中选择数据以填充 Android 中的 ListView。每次用户单击列表视图项时,我都会创建一个新的 Activity 实例来重新填充列表视图。
调用cursor.close()
并db.close()
避免内存问题更好吗?我实际上db.close()
参与OnDestroy()
了我的活动。
cursor
一旦您在方法中检索到该特定对象的值,您就可以关闭它。
顺便说一句...您不必listview
每次都为用户单击事件重新创建。只需通知列表视图上设置的适配器数据发生了一些变化。
就像是
youradaptername.notifyDataSetChanged();
这应该会自动重新填充 ur 中的内容listview
。
好吧,如果您每次都为同一个 Activity 创建一个新实例(尽管我不确定它是否是一个好的编程习惯)。完成遍历/迭代列表视图的源后,您可以关闭光标。
例子:
示例实现将类似于
//Pre cursor code
startManagingCursor(cursor);
if (cursor.moveToFirst()) {
do {
if (cursor.getString(0).equals(value)) {
cursor.close();
a = true;
return a;
}
} while (cursor.moveToNext());
}
//Close cursor here, when its work is complete
cursor.close();
//Post cursor code ...