我在这里写信给你一个关于进度对话的小问题。
事实上,我在我的应用程序中调用Web服务,进度对话框运行良好。
但是当我更改对象的日期以进行我的Web服务调用时, 出现进度对话框,结果为receiveid。并且自动,有一个新的Web服务调用,进度对话框没有消失: - /
在我的服务器JBoss上,我可以看到来自我的应用程序的调用。 在我的活动的第一次创建时,我有一个电话。
但是在第二次通话时,当我更改日期时,有两个电话。我不知道为什么,因为当我改变我的一个微调器时它的工作正常,Web服务就是调用并返回结果。
我在asynctask中调用Web服务。我对asynctask中的进度对话框一无所知。
以下是我调用进度对话框的方法
public void callWebService()
{
myProgressDialog = ProgressDialog.show(OverviewMoney.this,"", "Récupération liste des positions cash",true);
final Runnable runInUIThread = new Runnable() {
public void run() {
setListView();
}
};
new Thread() {
@Override public void run()
{
loadListMoney();
myProgressDialog.dismiss();
uiThreadCallback.post(runInUIThread);
myProgressDialog= null;
}
}.start();
}
方法loadListMoney在asynctask中调用我的Web服务,方法setListView将我的resultList放在适配器中以在列表视图上打印列表。 在此先感谢:-)(对不起我的英语)
答案 0 :(得分:0)
试试这个
public void callWebService()
{
if (myProgressDialog != null) myProgressDialog.dismiss();
myProgressDialog = ProgressDialog.show(OverviewMoney.this,"", "Récupération liste des positions cash",true);
final Runnable runInUIThread = new Runnable() {
public void run() {
setListView();
}
};
new Thread() {
@Override public void run()
{
loadListMoney();
myProgressDialog.dismiss();
uiThreadCallback.post(runInUIThread);
myProgressDialog= null;
}
}.start();
}
根据我的理解,当第一次调用此函数两次时,它将启动进度对话框并快速进行另一个函数调用,因此不会忽略之前的进度对话框,而是创建了另一个进度对话框。这就是它的主要原因。