进度条不会更新。但是,它在完成任务时结束。
int totalSms = 12;
int currentSms = 0;
public class ProgressTask extends AsyncTask<String, Integer, Boolean> {
/** progress dialog to show user that the backup is processing. */
private ProgressDialog dialog;
public ProgressTask(ScanInboxActivity activity) {
dialog = new ProgressDialog(activity);
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMax(totalSms);
}
protected void onPreExecute() {
dialog.setMessage("Scan start");
dialog.show();
}
@Override
protected void onProgressUpdate(Integer... values) {
Log.d(TAG, "in onProgressUpdate: " + values[0]); // shows actuall count in the log
dialog.setProgress(values[0]); // does not update
//tried even this, does not work
//dialog.incrementProgressBy(values[0]);
}
@Override
protected void onPostExecute(final Boolean success) {
if (dialog.isShowing()) {
dialog.dismiss();
}
populateList();
}
protected Boolean doInBackground(final String... args) {
try {
Context context = getApplicationContext();
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
while (currentSms < totalSms) {
Thread.sleep(1000);
currentSms++;
publishProgress(currentSms);
}
} catch (IllegalArgumentException e) {
} catch (InterruptedException e) {
}
return true;
}
答案 0 :(得分:9)
dialog.setIndeterminate(true);
它应为false
,否则加载值将不会被评估