gpt4 book ai didi

android - 如何使用asynctask显示倒计时的进度条?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:19 25 4
gpt4 key购买 nike

在我的应用程序中,我希望用户按下一个按钮,然后等待 5 分钟。我知道这听起来很糟糕,但还是接受吧。 5 分钟等待时间的剩余时间应显示在进度条中。

我正在使用带有 TextView 的 CountDownTimer 进行倒计时,但我的老板想要一些看起来更好的东西。这就是进度条的原因。

最佳答案

你可以这样做......

public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
private ProgressDialog mProgressDialog;

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("waiting 5 minutes..");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}

然后写一个异步任务来更新进度..

private class DownloadZipFileTask extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}

@Override
protected String doInBackground(String... urls) {
//Copy you logic to calculate progress and call
publishProgress("" + progress);
}

protected void onProgressUpdate(String... progress) {
mProgressDialog.setProgress(Integer.parseInt(progress[0]));
}

@Override
protected void onPostExecute(String result) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
}

这应该可以解决您的目的,它甚至不会阻塞 UI 进程..

关于android - 如何使用asynctask显示倒计时的进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18069678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com