Я начинаю asynctask
внутри SherlockListFragment
, который был создан внутри SherlockFragmentActivity
в качестве вкладки.Android: Диалог прогресса в AsyncTask не отображается
проходит asynctask
конструктор моего контекст деятельности и инициализировать AsyncTask как это внутри onCreate()
:
AsyncTask<String, Integer, String[]> asynctask = new DownloadFilesTask(getSherlockActivity()).execute(url);
Конструктор внутри класса AsyncTask DownloadFilesTask выглядит следующим образом:
private ProgressDialog dialog;
private SherlockFragmentActivity activity;
public DownloadFilesTask(SherlockFragmentActivity activity) {
this.activity = activity;
this.dialog = new ProgressDialog(activity);
}
Предварительно выполнить и post execute выглядят так:
protected void onPreExecute(){
Log.d("AsyncTask!", "Showing dialog now!"); //shown in logcat
dialog.setMessage("Retrieving all currently airing anime. Please wait.");
dialog.setCancelable(false);
dialog.show();
}
.
protected void onPostExecute(String[] result) {
Log.d("AsyncTask!", "Dismissing dialog now!"); //shown in logcat
dialog.dismiss();
}
Но диалог прогресса не отображается, пока все фоновые работы выполняются! Что я здесь делаю неправильно? Я думаю, что это может быть проблемой контекста.
Вы должны опубликовать свой код о том, как (и когда) вы выполняете AsyncTask. Примечание. Вам нужно создать экземпляр и вызвать выполнение в потоке пользовательского интерфейса (на http://developer.android.com/reference/android/os/AsyncTask.html) –
Я создаю экземпляр AsyncTask в onCreate класса который расширяет SherlockListFragment. Как я могу назвать это в потоке пользовательского интерфейса? –
только ради эксперимента, отбросьте аспект SherlockFragmentActivity и просто перейдите в хороший контекст. вызовите ваш конструктор с помощью нового DownloadFilesTask (this), а затем .execute (url) и посмотрите, что произойдет. –