我有一个自动补全的控件 (AutoCompleteTextView)链接了CursorAdapter,
所以每次输入文字都会查询数据库, 则CursorAdapter里面一直在使用cursor和
SQLiteDatabase sqlite = context.openOrCreateDatabase(DATABASE, 0, null);
比如 @Override
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
Cursor c = sqlite.query("table_location", columns, selection, null, null, null,
"cityName asc, countryName asc");
return c;//这个地方会返回给其他地方使用,所以关闭是不正确的
} 所以我想请问什么时候才能关闭数据库? 目前程序一直在报异常"database not closed".
所以每次输入文字都会查询数据库, 则CursorAdapter里面一直在使用cursor和
SQLiteDatabase sqlite = context.openOrCreateDatabase(DATABASE, 0, null);
比如 @Override
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
Cursor c = sqlite.query("table_location", columns, selection, null, null, null,
"cityName asc, countryName asc");
return c;//这个地方会返回给其他地方使用,所以关闭是不正确的
} 所以我想请问什么时候才能关闭数据库? 目前程序一直在报异常"database not closed".
解决方案 »
- 程序装载完不自动启动什么原因?有谁遇到过。
- android:screenOrientation="landscape" 程序跑两遍
- id的问题
- ScrollView如何实现记录的位置,下次启动程序自动定位到上次位置
- 创建的新工程没有R文件
- 手机连上电脑后豌豆荚可以自动给手机安装客户端!
- android新手关于 DialogInterface 的问题
- 一个Activity和xml 的问题
- AlarmManager 怎样在进程被干掉的情况下触发回调
- Android基础题,挺急的,求各位大佬帮帮忙
- 菜鸟问题,莫要见笑。请问统一个系统,B/S版本和一个安卓客户端版本可以访问同一个服务器端吗?
- SDK manager.exe 安装时一闪而过
当然,假如只是为了获取一些数据,那大可在cursor操作完毕,将数据保存下来,不一定非要把整个cursor都放回出去,也许你为了方便才这样做,但是实际上是不对的;就好比c里,在一个函数中你malloc了东西,然后把malloc返回的指针给return到外面了,外面是方便了,但是你搞不好就忘了,那就泄露了。
我实在找不到一个地方去关闭他.