У меня есть TabActivity, реализующая TabContentFactory, которая запускает AsyncTask в onCreate() для извлечения данных для вкладок. Когда AsyncTask завершена, onPostExecute() может напрямую обновлять элементы интерфейса, не так ли? Смысл, поскольку этот метод работает в UI-Thread, при доступе к пользовательским интерфейсам не требуется дополнительная синхронизация потоков?Android: TabActivity - не добавлять вкладки до завершения AsyncTask
В любом случае проблема заключается в том, что мой UI-Thread вызывает createTabContent() в TabActivity, в то время как AsyncTask все еще занят. Мне нужно добавить хотя бы одну вкладку, или я получаю исключение NullPointerException. Но как мне добавить только вкладки, когда моя AsyncTask закончила, а ProgressDialog был уволен?
Я был бы рад, если кто-то может помочь ...
привет, спасибо за ответ! Вы сказали, что я должен запустить AsyncTask только после того, как TabActivity будет полностью создан - это точно моя проблема. Я не хочу показывать какую-либо вкладку перед завершением работы AsyncTask. : -/ – cody
Я забыл объяснить: все работает отлично, я хочу, чтобы UI-Thread ожидал данных. Я рассмотрел инициализацию TabActivity с моими 5 вкладками, содержащими один пустой ScrollView, а затем добавлением содержимого к ним в AsyncTask.onPostExecute (..). Но я не уверен, что это сработает ...? – cody
Он должен работать. Вы можете добавлять/изменять контент в любое время после инициализации виджета. Для удобства пользователей вы должны показать ProgressBar и заменить его содержимым после его загрузки. Вы можете обновлять постепенно (вкладка за вкладкой) по мере доступности контента. См. Пункт 3. выше. –