2015-06-08 3 views
1

У меня есть активность с 2 фрагментами, называемыми A и B. Фрагмент A имеет AsyncTask для анализа некоторых данных из Интернета в массив пользовательских объектов и заполнения его интерфейса. Фрагмент B также должен использовать этот массив для обновления своего интерфейса. Вопрос в том, как я могу убедиться, что Fragment A завершит свою работу (завершив AsyncTask) до того, как появится фрагмент B и будет использовать данные?Сериализация выполнения нескольких фрагментов с использованием AsyncTask

ответ

1

Q: Как я могу убедиться, что фрагмент А будет закончить свою работу (по окончании AsyncTask)

A: Вы можете установить флаг в классе sigleton, которые могут быть обновлены на onPostExecute вашего AsyncTask.

+0

Хотя все еще есть некоторые проблемы, но у меня есть идея. Я правильно ответил на ваш ответ. –

0

Если вы используете 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

1) Вы можете использовать шину событий для связи (комплекса при старте, но и поможет вам в долгосрочной перспективе)

Популярные библиотеки для реализации шины событий на андроид

2) Вы также можете использовать слушатели для каждого фрагмента, который может быть связан с активностью. Активность может связываться между двумя фрагментами.

+0

Event Bus кажется сложным, но я посмотрю на него! Спасибо! –

Смежные вопросы