我有一个应用程序,它使用游标从sqlite数据库中的rawQuery选择数据,以填充Android中的ListView; 每次用户点击listview项时,我都会创建一个新的Activity实例来重新填充listview.呼叫cursor.close()和db.close()避免记忆问题更好吗?我实际上db.close()参与OnDestroy()了我的活动.
在我的Android应用程序中,我使用SQLiteOpenHelper来实现ContentProvider.查询,添加,删除操作都是通过ContentProvider完成的.
但是在我的一部Android手机(htc g13)中,我在目录/ data/data/[包名] /数据库中找到了*.db-wal文件.使用ContentProvider进行操作时,文件大小会非常快.它占用用户RAM空间太多.
建议关闭SQLiteOpenHelper来解决我的问题(这很有用)在这里输入链接描述.
但我希望找到一个"地方"来添加"close()"方法,因为我没有直接使用SQLiteOpenHelper(通过ContentProvider使用).ContentProvider中的query()方法必须返回一个Cursor,而SQLiteDatabse应保持打开状态.
我很困惑,我现在做什么让*.db-wal消失并正常使用ContentProvider?