Нужно ли вызывать close(), когда я использую getWritableDatabase()?
Если у меня есть такой код
private final SQLiteDatabase database;
private final SQLiteOpenHelper helper;
// ...
this.database = helper.getWritableDatabase();
// ...
Нужно ли вызывать close() явно?
Меня смущает этот ответ: /questions/30501827/nuzhno-li-vyizyivat-getwritabledatabase-kazhdyij-raz-kogda-ya-manipuliruyu-dannyimi/30501836#30501836
Посмотрите на документ для getWritableDatabase():
После успешного открытия база данных кэшируется, поэтому вы можете вызывать этот метод каждый раз, когда вам нужно выполнить запись в базу данных. (Обязательно вызывайте close(), когда вам больше не нужна база данных.)
PS Извините за мой английский.
1 ответ
Один звонок close()
всегда должен быть в паре с каждым вызовом getWritableDatabase()
,
Когда ты звонишь getWritableDatabase()
один раз для каждого запроса, вы также должны позвонить close()
когда вы закончили с запросом.
Когда ты звонишь getWritableDatabase()
когда активность запустится и сохраните ссылку, вы должны позвонить close()
когда активность прекращается.