在Android Studio中,当执行某些任务需要耗费时间,需要使用进度条来提供用户体验,但是有时在延迟时,进度条却无法显示。此时,我们可以尝试在代码中使用异步处理,这样可以将长时间的任务放在后台线程中进行,从而避免阻塞UI线程,并随时更新进度条的状态。以下是示例代码,展示了如何在异步任务中更新进度条:
private class LoadTask extends AsyncTask
public LoadTask(ProgressBar progressBar) {
    mProgressBar = progressBar;
}
@Override
protected Void doInBackground(Void... params) {
    while(progress < 100) {
        progress += 5;
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        publishProgress(progress);
    }
    return null;
}
@Override
protected void onPostExecute(Void result) {
    Toast.makeText(getActivity(),"Load Finished!", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPreExecute() {
    Toast.makeText(getActivity(), "Start Loading",Toast.LENGTH_SHORT).show();
}
@Override
protected void onProgressUpdate(Integer... values) {
    mProgressBar.setProgress(values[0]);
}
}
在Activity中,我们可以这样调用异步任务和进度条:
ProgressBar progressBar = findViewById(R.id.progressBar); LoadTask loadTask = new LoadTask(progressBar); loadTask.execute();
这样,即使在延迟时,进度条也可以正常显示更新。