gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 09:00:48 24 4
gpt4 key购买 nike

我正在 SherlockListFragment 中启动 asynctask,它是在 SherlockFragmentActivity 中作为选项卡创建的。

我将 asynctask 构造函数传递给我的 Activity 上下文,并在 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);
}

预执行和后执行看起来像这样:

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();
}

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

最佳答案

部分问题已解决,这要归功于 Mike Repass 关于传递普通旧上下文的评论。

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

关于Android:AsyncTask 中的进度对话框未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com