Как я могу запустить AsyncTask в жизненном цикле фрагмента, если Мне нужно onCreateView()
для запуска до onPostExecute()
? Я знаю, что могу просто запустить AsyncTask в onCreateView()
, но мне интересно, есть ли какая-либо гарантия того, что поток пользовательского интерфейса достигнет определенного момента, прежде чем передавать любые завершенные фоновые задачи. Что заставляет поток пользовательского интерфейса перейти к AsyncTask по завершении?Можно ли запустить AsyncTask во фрагменте перед созданием представления?
ответ
Как рано я могу начать AsyncTask в фрагменте жизненного цикла
вы можете начать AsyncTask в OnCreate(), но это не имеет значения.
Что заставляет поток пользовательского интерфейса перейти к AsyncTask по завершении?
AsyncTask использует обработчик для обновления пользовательского интерфейса, что означает, что он отправляет сообщение в очередь потока пользовательского интерфейса, которое должно выполняться некоторое время в будущем. Хотя вы не можете знать, когда это произойдет, в вашем случае это будет почти всегда выполняться после установки фрагмента.
Я добавил акцент на ключевую часть моего вопроса. Мне нужно знать, может ли «почти всегда» быть гарантией. – cambunctious
Я могу выделить его жирным шрифтом, но это то, что есть. Почти всегда. Вы не можете знать. Вы можете изменить логику своего кода. Если необходимо выполнить выполнение onpost до создания пользовательского интерфейса фрагмента, сделайте это в действии, прежде чем добавлять фрагмент или предыдущее событие/экран. – masp
Для этого нет гарантий, так как AsyncTask предполагается работать асинхронно, и вы не можете предсказать, когда он должен работать.
Вы можете, однако, управлять этим поведением, выполнив AsyncTask перед созданием экземпляра и просто передать результат AsyncTask вашему фрагменту. Этот подход имеет смысл, потому что если вы хотите запустить его перед вызовом onCreateView(), вам может не понадобиться переменная состояния или экземпляра фрагмента.
- 1. Проблемы с AsyncTask во фрагменте
- 2. Как отменить AsyncTask во фрагменте
- 3. Почему в фрагменте AsyncTask отсутствует фрагмент представления?
- 4. Можно ли использовать viewflipper во фрагменте?
- 5. Можно ли изменить параметры onCreate() во фрагменте
- 6. Использование AsyncTask с таймером во фрагменте
- 7. Восстановление состояния динамического представления во фрагменте
- 8. Как запустить тест перед созданием подписанного apk?
- 9. Можно использовать представление табуляции во фрагменте
- 10. Почему setUserVisibleHint вызывается перед onCreateView во фрагменте?
- 11. Использование asynctask в фрагменте
- 12. AsyncTask на фрагменте
- 13. Можно ли запустить несколько AsyncTasks
- 14. Можно ли вызвать метод onCreateView в методе onResume во фрагменте?
- 15. Подождите, пока каждая ASyncTask закончит работу перед выполнением следующего AsyncTask
- 16. Проверьте, открыты ли nspopover перед созданием нового
- 17. Android: Можно ли вычислить высоту представления перед ее нарисованием?
- 18. Можно ли установить границы для представления перед его показом
- 19. Asynctask в фрагменте или родительской активности?
- 20. Проверьте размер файла перед созданием
- 21. Метод вызова перед созданием пользователя
- 22. Подтвердите пользователя перед созданием
- 23. Внедрение RecyclerView во фрагменте
- 24. Возможно ли запустить одновременно несколько AsyncTask?
- 25. Можно ли попросить junit запустить предписание перед выполнением тестов?
- 26. Можно ли запустить javascript перед загрузкой всей страницы?
- 27. Можно ли добавлять разные представления для ListView во время выполнения?
- 28. Как запустить MainActivity во время представления SplashScreen
- 29. Не требуется FactoryGirl перед созданием
- 30. Подсказка перед созданием конфигурации Release?
onAttach() и onCreate() start before onCreateView() – XxGoliathusxX