Нужно ли вызывать 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() когда активность прекращается.

Другие вопросы по тегам