Вот моя ситуация:
В моем onCreate()
я хотел бы создать AsyncTask
для извлечения данных для сервера и сохранения его в ArrayList
.
Затем в моем onCreateView()
я хотел бы поместить эти данные в ListView
, установить onItemClickListener
и т.д.
Проблема в том, что я создаю гонку между AsyncTask
и потоком пользовательского интерфейса. Если вызов onCreateView()
вызывается до того, как выполняется AsyncTask
, то я не устанавливаю адаптер правильно, не устанавливайте onItemClickListener
и т.д.
Я хотел бы как-то убедиться, что я жду, пока AsyncTask
завершит выполнение перед запуском функции onCreateView()
. Это возможно? Я прочитал об использовании get()
в задаче, но у меня были некоторые проблемы с ее выполнением. Кажется, он ничего не делал.
Причина, по которой я хотел бы получить данные в onCreate()
и установить адаптер в onCreateView()
(вместо установки адаптера в onPostExecute()
AsyncTask
), заключается в том, что я хотел бы получить данные один раз, и иметь возможность просто создать представление, если пользователь поворачивает экран или переходит к такому Fragment
.