Мое приложение Android часто регистрирует ошибки, жалуясь на то, что я не смог опубликовать свои операторы, курсоры и базы данных.Фактически, я явно освобождаю все свои курсоры в блоках finally {} в конце кода, который их использует, и я закрываю свои базы данных в методах finalize () классов, которые их содержат.
Структура моего приложения очень затрудняет мне явный вызов метода close () для объекта базы данных (кроме финализатора), потому что, например, класс, который использует базу данных, не является классом Activity, но можетбыть классом, который косвенно используется Деятельностью.Так что этот класс сам не знает, когда Деятельность, к которой он в конечном итоге присоединен, разрушается.
Нужно ли мне беспокоиться об этом?Я постоянно пропускаю какой-то ресурс, не закрывая явно экземпляры моей базы данных?Есть ли опасность, что что-то не получится записать в файл?Реализует ли реализация SQLite на Android кэширование записи?Могу ли я отключить его или вызвать синхронизацию?
Какова политика виртуальной машины Android в отношении финализаторов - гарантированно ли они будут работать в конечном итоге?