Android: управление передачей курсора в CursorAdapter
При использовании сэндвича с мороженым мое приложение начинает принудительно закрываться, когда я хотел возобновить приложение, имеющее сетку, с помощью CursorAdapter, который передал управляемый запрос в CursorAdapter. Исключением будет StaleDataException, которое говорит, что я пытаюсь получить доступ к закрытому курсору.
Я использовал запрос getContextResolver(). Вместо управляемого Query. Помогите мне прекратить принудительное закрытие приложения, когда я попытался возобновить приложение.
В том случае, если бы я использовал этот способ. Нужно ли закрыть курсор или он будет закрыт адаптером.
1 ответ
Согласно документации по Activity с использованием managedQuery Вам не нужно закрывать курсор вручную, но с помощью ContentResolver вручную. Адаптер не закроет курсор, потому что он не знает (вместо Activity), когда пользователь покинул приложение и курсор больше не нужен. Обычно может быть достаточно вызвать changeCursor() со значением null (адаптер закроет старый) или swapCursor() со значением null (и закрыть возвращаемый курсор вручную).
Но я бы посоветовал взглянуть на CursorLoader как на более удобный, надежный и предложенный Google способ загрузки курсоров. Подумайте об использовании библиотеки поддержки v4, если вы ориентируетесь на старый Android.