我正在尝试在进度对话框中显示3条不同的消息。
在onPreExecute
中,我创建对话框并设置第一条消息。
在doInBackground
中,我用另外两个必须显示的句子/消息来呼叫publishProgres("sentence 2", "sentence 3")
。
如果在onProgressUpdate
我使用myDialog.setMessage(values[0]);
,它会显示我发送的第一句话,如果我使用myDialog.setMessage(values[1]);
,则会显示我发送的第二条消息。
但我的问题是,我该怎样做才能让对话框显示第一个发送的句子,并在一段时间后显示第二条消息?
最重要的是,我正在连接到一个URL,做一些其他的事情并在最后更新列表的数据,并且必须显示一个对话框,在进程发生时显示三条不同的消息。 ..
答案 0 :(得分:1)
publishProgress
以在后台计算仍在运行时在UI线程上发布更新。您可以在特定时间间隔内调用它来发布更新,以便向用户通知正在运行的任务。典型案例如下:
protected Void doInBackground(String.. params ) {
publishProgress("sentence 1");
//do some time consuming task
//..
publishProgress("sentence 2");
//do some more time consuming task
//..
publishProgress("sentence 3");
//do some more time consuming task
//..
}
protected void onProgressUpdate(String... progress) {
myDialog.setMessage(progress[0]);
}
如果您有循环,则可以在每次或特定次数的迭代期间调用publishProgress
。