【发布时间】:2014-01-23 19:06:11
【问题描述】:
我正在使用AsyncTask 从服务器下载大量数据,我的 AsyncTask 工作正常,所以我添加了一个进度条以使一切变得漂亮,但问题是当它的运行进度条在中途冻结时,我使用进度对话框,它在中途冻结也是一样的,
private class downloadChannelsfromserver extends
AsyncTask<String, Void, String> {
ProgressDialog progressDialog;
@Override
protected String doInBackground(String... url) {
String data = "";
try {
// Fetching the data from web service
data = getLinksfromServer(url[0]);
} catch (Exception e) {
Log.d("Background Task", e.toString());
}
return data;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
progressDialog= ProgressDialog.show(Settings.this, "Synchronicing","Synchronicing", true);
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
JSONObject json;
try {
json = new JSONObject(result);
db.deleteAll();
final JSONArray jsonArray = json.getJSONArray("XXXX");
for (int i = 0; i < jsonArray.length(); i++) {
///use for insert datainto database
}
finish();
progressDialog.dismiss();
} catch (JSONException e) {
// TODO Auto-generated catch block
Log.e("settings", "", e);
progressDialog.dismiss();
}
}
谁能告诉我为什么会这样,请
【问题讨论】:
-
你在哪里更新进度条的状态?
-
类downloadChannelsfromserver,是SettingsActivity的内部类吗?
-
在你调用活动finish()的finish之前尝试关闭你的对话框; progressDialog.dismiss();交换它们?
-
这只是一个简单的进度对话框,是的,这是一个内部类或设置活动,我已经交换了它们但仍然冻结
-
除非您在初始化和更新progressBar的地方添加代码,否则恐怕没有人能够准确地帮助您。
标签: android android-asynctask progressdialog