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)
但是,在完成所有后台工作后,进度对话框不会显示!我在这里做错了什么?我认为这可能是一个上下文问题。
由于迈克·雷帕斯(Mike Repass)关于传递普通旧环境的评论,部分问题得以解决。
至于对话框没有显示...我只是愚蠢的,因为我.get()在执行之后在AsyncTask之后调用了a ,它阻塞了UI线程。显然,对话框不会以这种方式显示。
| 归档时间: |
|
| 查看次数: |
5533 次 |
| 最近记录: |