2012-06-19 4 views
0

У меня есть активность со счетчиком, который загружает simpleCursorAdaptor. Я вызываю другой класс, чтобы вернуть курсор, который используется simpleCursorAdaptor. Я не сохраняю переменную уровня курсора или адаптера.Где я должен закрыть курсор?

Когда это действие закрывается, я хочу закрыть курсор. Должен ли я:

а) в OnDestroy() событие в activitie, получить курсор от блесны через адаптер и закрыть его там или

б) В классе обработчика данных, который генерирует курсор в первую очередь

ответ

3

Если вы создаете курсор с помощью loaderManager или поддерживаемогоLoaderManager, вам не нужно беспокоиться о закрытии курсора. Также рекомендуется открыть курсор с помощью загрузчика, чтобы сделать это из потока пользовательского интерфейса.

Однако по какой-либо причине, если вам нужно запросить курсор, используя contentresolver в потоке пользовательского интерфейса, лучше закрыть курсор в onPause и запросить курсор в onResume, наихудший сценарий закрыть его в onDestroy , может существовать экземпляр, в котором активность может быть собрана с помощью мусора перед вызовом onDestory.

Однако, как упоминалось выше, пожалуйста, попробуйте создать курсор с помощью CursorLoader с Loadermanager и LoaderCallbacks

1

Вы рассмотрели метод startManagingCursor (Cursor с)?

http://developer.android.com/reference/android/app/Activity.html#startManagingCursor(android.database.Cursor)

Altough, я думаю, вы должны использовать CursorLoader с LoaderManager (как сказано в документации). Эти классы доступны в библиотеке поддержки Android. Но помните, CursorLoader работает только с ContentProvider. Если вы хотите CursorLoader с простым курсором, посмотреть CursorLoader usage without ContentProvider

Edit:

Это теперь устаревшее для погрузчиков.

+1

startManagementCursor, а также managedQuery амортизируются и их следует избегать. – akshaydashrath

-1

Вы должны закрыть Курсор в onStop() или onDestroy(). Или вы можете позвонить startManagingCursor() после того, как вы получите Курсор из вашего запроса, и Android закроет Курсор самостоятельно.

Смежные вопросы