я столкнулся иногда SQLite проблемы, несколько раз моего приложения зависнет, и ошибкаAndroid SQLite вопроса «Невозможно выполнить эту операцию, так как пул соединения был закрыт»
Caused by: java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.
это моя функция, где ошибка происходит от
public List<contacts> getAllcontacts() {
List<contacts> contactsl = new LinkedList<contacts>();
// 1. build the query
String query = "SELECT * FROM contacts";
// 2. get reference to writable DB
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(query, null);
// 3. go over each row, build a contact and add it to list
contacts contact = null;
if (cursor.moveToFirst()) {
do {
contact = new contacts();
contact.setName(cursor.getString(1));
contact.setNumero(cursor.getString(3));
contact.setProfil(cursor.getString(2));
contact.setShow(cursor.getString(5));
contact.setBlocked(cursor.getString(4));
contact.setObjectid(cursor.getString(6));
contactsl.add(contact);
} while (cursor.moveToNext());
}
return contactsl;
}
ошибки показывает, когда я выполняю функцию, когда я тестирую мое приложение и пытаюсь запустить функцию более чем один раз, может быть.
Вот создание базы данных:
private static sql sInstance;
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "Contact";
public static sql getInstance(Context context) {
// Use the application context, which will ensure that you
// don't accidentally leak an Activity's context.
if (sInstance == null) {
sInstance = new sql(context.getApplicationContext());
}
return sInstance;
}
public sql(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATETABLE = "CREATE TABLE contacts (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT, "+
"profil TEXT, "+
"phone TEXT UNIQUE ,"+
"blocked TEXT, "+
"show TEXT , "+
"objectid TEXT)";
db.execSQL(CREATETABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int `newVersion) {`
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS contacts");
this.onCreate(db);
}
Как вы инстанцировании вашей базы данных Helper? –
Сообщение обновлено со всем созданием моей базы данных –