Android:AsyncTask中的进度对话框未显示

Edw*_*aak 2 android android-asynctask

我正在启动asynctask一个SherlockListFragment在内部创建的内部SherlockFragmentActivity选项卡。

我将asynctask活动上下文传递给构造函数,并在内部初始化asynctask onCreate()

AsyncTask<String, Integer, String[]> asynctask = new DownloadFilesTask(getSherlockActivity()).execute(url);
Run Code Online (Sandbox Code Playgroud)

AsyncTask类DownloadFilesTask内部的构造函数如下所示:

private ProgressDialog dialog;
private SherlockFragmentActivity activity;

public DownloadFilesTask(SherlockFragmentActivity activity) {
        this.activity = activity;
        this.dialog = new ProgressDialog(activity);
    }
Run Code Online (Sandbox Code Playgroud)

执行前和执行后的样子如下:

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();  
    }
Run Code Online (Sandbox Code Playgroud)

protected void onPostExecute(String[] result) { 
    Log.d("AsyncTask!", "Dismissing dialog now!"); //shown in logcat
    dialog.dismiss();
}
Run Code Online (Sandbox Code Playgroud)

但是,在完成所有后台工作后,进度对话框不会显示!我在这里做错了什么?我认为这可能是一个上下文问题。

Edw*_*aak 5

由于迈克·雷帕斯(Mike Repass)关于传递普通旧环境的评论,部分问题得以解决。

至于对话框没有显示...我只是愚蠢的,因为我.get()在执行之后在AsyncTask之后调用了a ,它阻塞了UI线程。显然,对话框不会以这种方式显示。