关闭游标的最佳方法是什么。
我有这种查询
@SuppressLint("StaticFieldLeak")
class query1 extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... voids) {
db = new DatabaseHelper(getApplicationContext());
sqLiteDatabase = db.getReadableDatabase();
Cursor select_a_file = sqLiteDatabase.rawQuery("SELECT file FROM table1 WHERE id = '" + edittext1.getText().toString() + "'", null);
while (ave_kwh_used.moveToNext())
{
firstdata = select_a_file.getString(0);
select_a_file.close();
}
return null;
}
}
每按一次按钮,我就有40个运行
我也有一个插入查询和计算,这些查询和计算也在后台线程中运行。
一旦按下该按钮,就会发生选择,计算和插入方法。
问题是,当我多次执行此操作时,我的应用程序崩溃了,并且显示了类似的内容
W/zygote64: ashmem_create_region failed for 'indirect ref table': Too many open files
E/SQLiteLog: (14) cannot open file at line 35807 of [553a923c82]
(14) os_unix.c:35807: (24) open(/data/user/0/com.vicjames.qiimeterreader/databases/Meter_Reader) -
E/SQLiteDatabase: Failed to open database '/data/user/0/com.vicjames.qiimeterreader/databases/Meter_Reader'.
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)