Закрытие базы данных в ContentProvider

На этой неделе я узнал все о ContentProvider и использовании класса SQLiteOpenHelper для управления созданием и обновлением базы данных внутри поставщика. В частности, я читал пример NotePad из каталога примеров sdk.

Теперь я вижу, что SQLiteOpenHelper имеет метод close (). Я знаю, что оставлять незанятые базы данных открытыми - плохая практика и может вызвать утечки памяти и тому подобное (если это обсуждение не направлено в правильном направлении). Если бы я использовал класс в Activity, я бы просто вызвал close () в методе onDestroy (), но, насколько мне известно, ContentProvider не имеет того же жизненного цикла, что и действия. Код для NotePad никогда не вызывает close (), поэтому я хотел бы предположить, что это обрабатывается SQLiteOpenHelper или какой-либо другой частью головоломки, но я действительно хотел бы знать наверняка. Я тоже не особо доверяю образцу кода ...

Резюме вопроса: когда мы должны закрыть базу данных в провайдере, если вообще?

73
задан Community 23 May 2017 в 12:09
поделиться