打开的文件太多。无法打开数据库

时间:2020-03-24 07:39:22

标签: android-asynctask

关闭游标的最佳方法是什么。

我有这种查询

@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)

0 个答案:

没有答案
相关问题