【发布时间】:2016-05-05 14:30:05
【问题描述】:
我写了一个asynctask来处理json,json结果很长(2G上需要40-70秒处理)。asynctask publishProgress("");函数仅在获取和处理 json 之后(就在 postexecute() 之前)执行。如何每秒更新一次。
class LoadAllProducts extends AsyncTask<String, String, String> {
int per=100;
@Override
protected void onPreExecute()
{
super.onPreExecute();
clear();
pDialog = new ProgressDialog(Load.this);
pDialog.setMessage("Loading ... Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jParser.makeHttpRequest(url, "POST", params);
publishProgress("");
if(json!=null) {
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1)
{
products = json.getJSONArray(TAG_PRODUCTS);
for (int i = 0; i < products.length(); i++)
{
JSONObject c = products.getJSONObject(i);
////////////////////////////////// Other codes
}
} else {}
} catch (JSONException e) {
e.printStackTrace();
}
}
return null;
}
protected void onPostExecute(String file_url)
{
pDialog.dismiss(); load(0);
}
@Override
protected void onProgressUpdate(String... text)
{
per=per-1;
pDialog.setMessage("Loading Questions... Please wait..."+per);
}
}
我参考了:Android, java - Unable to update variable from asynctask
【问题讨论】:
标签: android