我有一个带有上下文的 AsyncTask:
public class DownloadDataPromotions extends AsyncTask<Void, Integer, ArrayList<HashMap<String, String>>>
{
Context context;
public DownloadDataPromotions(Context context)
{
this.context = context;
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected ArrayList<HashMap<String, String>> doInBackground(Void... params)
{
ArrayList<HashMap<String, String>> promoList = new ArrayList<HashMap<String, String>>();
promoList = DownloadingDataFromWebService();
...
return promoList;
}
@Override
protected void onProgressUpdate(Integer... values)
{
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(ArrayList<HashMap<String, String>> promoList)
{
super.onPostExecute(promoList);
...
}
}
然后我将它调用到一个 ListActivity(带有他的上下文),以便将从这个 AsyncTask 下载的所有内容显示到一个列表中。
但是现在我想在这个 AsyncTask 中添加一个 Loader ProgressBar,它只能通过以下方式确定:在 onPreExecute() 上显示并在 onPostExecute() 方法中停止显示..
我将它放入带有自定义可绘制对象的可绘制内容中,但我想让它在 AsyncTask 加载时出现并在 AsyncTask 完成时消失(以编程方式)..
编辑:
这工作正常:
ProgressBar pb = new ProgressBar(TabPromotionsJSONParsingActivity.this);
LinearLayout ll = (LinearLayout) findViewById(R.id.linearlayoutProgressBar);
ll.addView(pb);
pb.setVisibility(View.VISIBLE);
但是我现在遇到的问题是在我的 Asynctask 完成时停止它。我想在我的 DownloadDataPromotions 中执行相同的任务,有人知道怎么做吗?