【发布时间】:2011-02-25 17:30:30
【问题描述】:
现在,我已经创建了进度条,我想为进度条分配时间(例如 2 分钟) 并且用户必须能够在运行进度条时看到时间。 我们如何才能做到这一点?
【问题讨论】:
现在,我已经创建了进度条,我想为进度条分配时间(例如 2 分钟) 并且用户必须能够在运行进度条时看到时间。 我们如何才能做到这一点?
【问题讨论】:
您可以使用 CountDownTimer 更新您的 ProgressBar
bar = (ProgressBar) findViewById(R.id.progress);
bar.setProgress(total);
int twoMin = 2 * 60 * 1000; // 2 minutes in milli seconds
/** CountDownTimer starts with 2 minutes and every onTick is 1 second */
cdt = new CountDownTimer(twoMin, 1000) {
public void onTick(long millisUntilFinished) {
total = (int) ((dTotal / 120) * 100);
bar.setProgress(total);
}
public void onFinish() {
// DO something when 2 minutes is up
}
}.start();
【讨论】:
tick 和 finish 在 Main Looper(即 UI)上被调用。如果您想定期在后台执行某些操作,您可以在 onTick 上启动您的 AsyncTask
Onkar... AsyncTask 既可以托管时间密集型任务,也可以报告进度,如果时间密集型任务可以分解为子任务。 AsyncTask 使用泛型来完成它的魔力。进度类型将是三个“必需的形式类型参数”的中间类型<Params,Progress,Result>。
日航
【讨论】: