Использование SQLiteOpenHelper.getWritableDatabase - PullRequest
0 голосов
/ 25 октября 2011

Согласно http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#getWritableDatabase%28%29

После успешного открытия база данных кэшируется, так что вы можете вызвать это метод каждый раз, когда вам нужно записать в базу данных.

Рассмотрим следующий фрагмент:

SQLiteDatabase db1 = openHelperImplObj.getWritableDatabase();
// do something with db1
SQLiteDatabase db2 = openHelperImplObj.getWritableDatabase();
// do something with db2
db2.close();
// do something with db1
db1.close();

Я полагаю, что второй вызов getWritableDatabase () вернет ту же кешированную БД ( db1 ), не будет ли строка db2.close () вызвать какие-либо проблемы для db1 операции, которые происходят после? Если это так, каков рекомендуемый способ избежать такой проблемы, поскольку второй вызов может произойти где угодно, то есть в другой функции или даже в другом классе.

1 Ответ

0 голосов
/ 25 октября 2011

Когда вы открываете базу данных с помощью db openHelperImplObj.getWritableDatabase(); тогда следующая вещь проверяется

1> Если база данных не создана, она создает базу данных и открывает ее для режима записи, в противном случае сначала создайте, а затем откройте.

2> Второе и самое важное, что я заметил, если база данных уже создана, то она открыла ее, но если она уже открыта, она ничего не делает, That means it occupy the old instance of data База, которая уже открыта БД, пока вы ее не закроете. использовать более

Надеюсь, вы получили

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...