Надеюсь, что кто-то может помочь в этом, что мне кажется особенной проблемой. Мой ум немного пульсирует здесь, так как я взорвался своим пониманием жизненного цикла Android. Позвольте мне попробовать сделать вещи более ясными.Проблема с курсором/исключение устаревших данных в необычной ситуации
Проблема: Я получаю «StaleDataException» во время метода getView настраиваемого адаптера (расширяющего BaseAdapter), который я использую для активности для заполнения GridView. До сих пор звучит прямо. Когда я впервые вхожу в активность, адаптер работает так, как ожидалось, и сетка заполняется. У меня есть кнопка активности, которая срабатывает с намерением, чтобы позволить пользователю сделать снимок, и возвращается через «onActivityResult», сохраняя изображение в базе данных. Все это тоже работало. На самом деле я написал эту часть сначала, а затем добавил адаптер gridview.
Теперь, когда StalkDataException происходит, когда я пошел в камеру, чтобы сделать снимок, а затем нажмите OK, чтобы вернуться ... У меня есть множество операторов журнала в большинстве событий моей активности, и очень странно, что StaleDataException когда ЛЮБОЙ из этих событий срабатывает ... до OnActivityResult/OnResume и т. д.
Так что я довольно смущен, почему к Адаптеру обращаются, прежде чем я вернусь к своей деятельности и до того, как onActivityResult/OnResume были вызваны ..
Отладка шагов, которые приводят к исключению, все это происходит в этой строке:
String contentType = dataCursor.getString(dataCursor.getColumnIndexOrThrow(DbStatics.ACCIDENTS_MEDIA_KEY_TYPE));
То, что меня озадачивает, это dataCursor на самом деле открыто, и первый вызов (getColumnIndexOrThrow) также возвращает значение .. поэтому его getString() приводит к исключению.
Так что я надеюсь, что это достаточно ясно ... и действительно очень надеюсь, что кто-то мог бы пролить свет на то, что происходит ..
Большое спасибо,