我开始SherlockListFragment
内的asynctask
,它是在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);
}
预执行和后执行看起来像这样:
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。注意:您需要实例化它并在UI线程上调用execute(根据http://developer.android.com/reference/android/os/AsyncTask.html) – 2013-02-26 23:19:29
我在类的onCreate中创建AsyncTask实例这扩展了SherlockListFragment。我如何在UI线程上调用它? – 2013-02-27 06:20:36
只是为了实验的目的,放弃SherlockFragmentActivity方面,直接传入一个好的“Context”。用新的DownloadFilesTask(this)调用你的构造函数,然后执行(url)并看看会发生什么。 – 2013-02-27 07:56:49