在Android应用程序中使用异步任务更新后台窗口。首先,创建自定义对话框并在异步任务中显示和更新对话框。这可以通过如下代码实现:
首先,定义一个新类,用于创建和更新对话框:
public class UpdateDialog extends Dialog {
private ProgressBar progressBar;
private TextView textView;
public UpdateDialog(Context context) {
super(context);
setContentView(R.layout.update_dialog);
progressBar = findViewById(R.id.progress);
textView = findViewById(R.id.text);
}
public void updateProgress(int progress) {
progressBar.setProgress(progress);
textView.setText("Updating: " + progress + "%");
}
}
然后,创建一个异步任务类,用于更新后台更新进度:
public class UpdateTask extends AsyncTask {
private UpdateDialog dialog;
public UpdateTask(Context context) {
dialog = new UpdateDialog(context);
}
@Override
protected void onPreExecute() {
dialog.show();
}
@Override
protected Void doInBackground(Void... voids) {
for (int i = 0; i <= 100; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress(i);
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
dialog.updateProgress(values[0]);
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
dialog.dismiss();
}
}
最后,在你的活动中执行任务:
UpdateTask task = new UpdateTask(this);
task.execute();
这样,你就可以在后台更新对话框中显示和更新进度了。