Проблема, швидше за все, полягає у тому, що ви запускаєте заставку (якийсь діалог, такий як ProgressDialog, на мою думку) у тій самій темі, що і вся робота, що виконується. Це не дозволить оновлювати вигляд заставки, що може унеможливити його навіть відображення на екрані. Вам потрібно відобразити заставку, розпочати екземпляр AsyncTask щоб завантажити всі ваші дані, а потім приховати заставку після завершення завдання.
Отже, метод onCreate () вашого Activity просто створить ProgressDialog і покаже його. Потім створіть AsyncTask і запустіть його. Я б зробив AsyncTask внутрішнім класом вашої основної активності, щоб він міг зберігати дані, які він завантажив, до якоїсь змінної у вашому Activity і закривати ProgressDialog у своєму методі onPostExecute ().
Не знаючи, як це детальніше розробляти, а не просто показувати код, ось він:
public class MyActivity extends Activity {
private ProgressDialog pd = null;
private Object data = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.pd = ProgressDialog.show(this, "Working..", "Downloading Data...", true, false);
new DownloadTask().execute("Any parameters my download task needs here");
}
private class DownloadTask extends AsyncTask<String, Void, Object> {
protected Object doInBackground(String... args) {
Log.i("MyApp", "Background thread starting");
return "replace this with your data object";
}
protected void onPostExecute(Object result) {
MyActivity.this.data = result;
if (MyActivity.this.pd != null) {
MyActivity.this.pd.dismiss();
}
}
}
}
Очевидно, там є деякі фрагменти, які вам потрібно заповнити, але цей код повинен запуститись і дати вам хорошу вихідну точку (пробачте, якщо є помилка коду, я не маю доступу до Android SDK, оскільки я набираю це в даний час).
Ще кілька хороших читань на тему AsyncTasks в Android можна знайти тут і тут .