У меня есть активность с 2 фрагментами, называемыми A и B. Фрагмент A имеет AsyncTask для анализа некоторых данных из Интернета в массив пользовательских объектов и заполнения его интерфейса. Фрагмент B также должен использовать этот массив для обновления своего интерфейса. Вопрос в том, как я могу убедиться, что Fragment A завершит свою работу (завершив AsyncTask) до того, как появится фрагмент B и будет использовать данные?Сериализация выполнения нескольких фрагментов с использованием AsyncTask
ответ
Q: Как я могу убедиться, что фрагмент А будет закончить свою работу (по окончании AsyncTask)
A: Вы можете установить флаг в классе sigleton, которые могут быть обновлены на onPostExecute
вашего AsyncTask.
Если вы используете Async Task, то onPostExecute()
метод Async
введите код показа fragment B
. Чтобы гарантировать, что после завершения задания fragment A
отобразится fragment B
.
protected void onPostExecute(String result){
//Code for fragment A to show data in UI
// code for showing fragment B
}
1) Вы можете использовать шину событий для связи (комплекса при старте, но и поможет вам в долгосрочной перспективе)
Популярные библиотеки для реализации шины событий на андроид
- https://github.com/greenrobot/EventBus
- http://square.github.io/otto/ (Я использую эту библиотеку)
2) Вы также можете использовать слушатели для каждого фрагмента, который может быть связан с активностью. Активность может связываться между двумя фрагментами.
Event Bus кажется сложным, но я посмотрю на него! Спасибо! –
- 1. One AsyncTask для нескольких фрагментов
- 2. Сериализация с использованием нескольких файлов
- 3. Переключение фрагментов с помощью AsyncTask
- 4. Возвращение нескольких значений с использованием asynctask
- 5. диалог выполнения с asynctask
- 6. Архитектура нескольких фрагментов Android
- 7. Обновление TextView для разных фрагментов из AsyncTask
- 8. Слайдингмену с использованием фрагментов
- 9. PagerAdapter с использованием фрагментов
- 10. Обрезка нескольких фрагментов с усечением
- 11. Ошибка выполнения с AsyncTask класс
- 12. Задача Async для нескольких фрагментов
- 13. Сериализация с использованием C#
- 14. Сериализация с использованием Boost.Serialization
- 15. Сериализация с использованием C#
- 16. Сериализация с использованием генераторов
- 17. Передача нескольких фрагментов данных с использованием канала в C
- 18. Синхронизация CreateView нескольких фрагментов
- 19. Параллельное состояние выполнения AsyncTask
- 20. Создание нескольких AsyncTask
- 21. Обработка нескольких значений фрагментов
- 22. Как отменить асинтез из нескольких фрагментов
- 23. Использование нескольких фрагментов вкладки
- 24. Monogame - Загрузка нескольких фрагментов
- 25. Заставка с использованием AsyncTask
- 26. onCreateView() ждет выполнения AsyncTask?
- 27. NullPointerException при использовании asyncTask, интерфейса и фрагментов
- 28. Как AsyncTask для фрагментов из onPageSelected ViewPager?
- 29. Пользовательская сериализация с использованием XmlSerializer
- 30. AsyncTask показывает индикатор выполнения
Хотя все еще есть некоторые проблемы, но у меня есть идея. Я правильно ответил на ваш ответ. –