Я начну с того, что пытаюсь выполнить.
У меня есть ListFragment с LoaderCallbacks, связанными для получения данных из БД.Данные загружаются с помощью AsyncTask и вставляются в БД.Когда пользователь попадает в конец списка, с помощью виджета CWAC-Endless запускается AsyncTask и загружается больше данных.
Я столкнулся с несколькими проблемами здесь, и я попытался разобраться в этомв течение многих ночей, и я решил приехать сюда, чтобы попросить о помощи.
Первая проблема - configChanges.Когда пользователь поворачивает устройство, действие уничтожается, а затем воссоздает все фрагменты.Я знаю, что могу использовать setRetainInstance в true, но это не помогает, поскольку AsyncTask все еще работает, когда действие срывается!
Вторая проблема связана с загрузчиком.Если данные загружены, и AsyncTask выполняет штраф, то элементы отображаются в списке штрафов.Допустим, в БД 20 предметов.Когда пользователь поворачивает устройство, и фрагмент воссоздается, загрузчик должен быть снова связан.Когда это происходит, данные сразу не загружаются в список, и вместо этого запускается AsyncTask для загрузки, потому что адаптер CWAC-Endless считает, что это последний элемент в списке!
Оба этипроблемы исчерпали меня.Мне нужно по-новому взглянуть на это, так как я не знаю, где.
Любые предложения подойдут, и я могу опубликовать исходный код, если это необходимо.
РЕДАКТИРОВАТЬ
Хорошо, вот еще несколько подробностей, которые помогут с некоторыми предложениями.
Я загружаю данные из Интернета, которые возвращают только определенное количество элементов ввремя.Затем мне нужно запросить больше данных, когда я этого захочу (нумерация страниц).
Я решил использовать базу данных, поскольку новая функциональность Loader упрощает проверку загрузки данных.эффективно и последовательно, без каких-либо проблем с потоками.Если имеет смысл отказаться от подхода Loader и использовать стандартный адаптер для рендеринга данных, я более чем рад отказаться от этого подхода и использовать его.Я просто хотел посмотреть, сможет ли кто-нибудь понять, почему это решение так сложно.
Спасибо,
Адам