Intereting Posts
Как отправить команду AT в android? «ОШИБКА: невозможно восстановить ключ» при экспорте подписанного приложения Android с существующим хранилищем ключей MediaPlayer – используйте объем рингтона вместо объема мультимедиа Важность алгоритмов в контексте разработки мобильных приложений? Вызов активности внутри модуля библиотеки Android Анимация: в android как масштабировать и исчезать представление, состоящее из нескольких строк текста из центральной точки Android Button setAlpha Android – индекс без границ на планшете? Возврат результата цели, когда активность закрыта кнопкой «Назад» Как включить или отключить компонент? Объяснение метода getView () для ArrayAdapter Как обрабатывать сообщения обработчика, когда действие / фрагмент приостановлено Установите переменную окружения ANDROID_HOME в mac Воспроизведение FLV / HTTP в приложении Android Facebook Android Generate Key Hash

Недостатки андроида не закрывать курсор

У меня есть некоторые вопросы относительно Cursor .

Я хочу знать, каковы недостатки не закрытия Cursor ?

Он освобождает ресурсы, но какие ресурсы освобождены?

Если мы не закрываем Cursor ? Каковы будут последствия и в какой степени?

Не закрытие Cursor не влияет на Activity немного, но оно дает ошибку в log cat.

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

Курсор – это только интерфейс. Многое зависит от реализации, какого конкретного класса, который реализует этот интерфейс, который вы используете …

В случае с SQLiteCursor существует немало вещей, которые нужно очистить (это от Froyo):

 @Override public void close() { super.close(); deactivateCommon(); mQuery.close(); mDriver.cursorClosed(); } 

Не закрывая курсор, данные все равно должны быть согласованы, но вы собираетесь утечка памяти …

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

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

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