У меня есть основное действие, в котором я использовал пейджер представления. Так что я могу перемещаться между 4 вкладками, а пейджер представления обрабатывает все это. Одна из моих вкладок просматривает контакты на телефоне получить их данные и отобразить их в recylerview, который находится на одной вкладке, эта задача занимает много времени, и я делаю это в async-задаче. Все работает нормально, но проблема в том, что если я перейду на другую вкладку, пока это сканирование использование данных не может быть применено к просмотру ресайклера, потому что этот фрагмент уничтожается. Есть ли обходной путь для этого или я должен просто запретить пользователю перемещать вкладки во время сканирования (если бы это был какой-то код или ссылка на код, это было бы очень полезно).Сохранение данных async в режиме recycler
ответ
Я бы не рекомендовал вам заставлять пользователя оставаться на странице во время загрузки данных. Похоже, это только срывало бы людей. С этой целью у меня есть пара идей, которые должны поддерживать ваш AsyncTask
, пока ваш Fragment
не будет виден.
Во-первых, вы можете позвонить setOffScreenPageLimit(2)
на свой ViewPager
. Поскольку у вас есть только четыре Fragment
, это должно означать, что все они хранятся в памяти.
viewPager.setOffScreenPageLimit(2);
Другой подход может быть в состоянии создать UI-менее Fragment
, единственной функцией которого является проведение вашего AsyncTask
, а затем, как только он достигает onPostExecute()
, передать Cursor
результат в Fragment
, что требует его либо interface
или EventBus какого-то типа (то есть LocalBroadcastManager
или одна из других прекрасных библиотек, которые существуют, например, EventBus от GreenRobot).
Редактировать Если вы хотите информацию о том, как создать такой «рабочий» Fragment
, то есть очень хороший и подробный пост на androiddesignpatterns.
- 1. Картинка для автофитажа в режиме Recycler
- 2. Ручка Click Button в режиме recycler
- 3. Как загрузить несколько фрагментов в режиме Recycler
- 4. Прокрутка после прокрутки в режиме recycler
- 5. Gridlayout Под вертикальным списком в режиме Recycler
- 6. Android: настройка текста в режиме recycler
- 7. C# безопасное сохранение async при изменении данных?
- 8. Сохранение данных сетки в автономном режиме
- 9. Сохранение в спящем режиме
- 10. выбор радиокнопки в Radio Group в режиме Recycler в android?
- 11. Использование async для загрузки данных формы в фоновом режиме - MVVM
- 12. Weird Icon of Photos APP отображается в режиме просмотра Recycler?
- 13. Сохранение изображений Async CodeIgniter PHP
- 14. Recycler view in recycler view
- 15. Гризли для использования в режиме записи в режиме Async
- 16. Как преподносить 2-3 изображения, используя Fresco в режиме Recycler
- 17. Извлечь определенный ключ из firebase в режиме recycler
- 18. Добавление другого вида при нажатии кнопки в режиме recycler
- 19. Сохранение NSManagedObjectContext в фоновом режиме
- 20. Сохранение в автономном режиме JavaScript
- 21. Загрузка данных фрагмента Android в recycler
- 22. Сохранение «этого» в Javascript перед вызовом async
- 23. Сохранение динамического Usercontrol в async postback
- 24. Сохранение данных внутри итератора с помощью async mongoose
- 25. Разница SocketChannel.read() в режиме async и sync?
- 26. Async Задача не работает в фоновом режиме?
- 27. jQuery treeview не работает в режиме async
- 28. как активировать запросы в режиме async?
- 29. MVC - Сохранение данных в режиме просмотра между запросами
- 30. Сохранение несвязанных данных в режиме просмотра при отправке
Планировал настройку offscreenlimit, но я не был уверен, сколько из памяти ударит, что может быть. Это потребляет много памяти? –
@JudeFernandes В записи javadoc говорится, чтобы попытаться сохранить номер как можно ниже, но поскольку минимальная сумма 'Fragment', кэшированная 'ViewPager', равна трем, в действительности четыре не должны вызывать проблемы. – PPartisan