设置ProgressDialog的最短时间,最大不需要

时间:2011-10-10 08:21:48

标签: android

我需要在app处理一些数据时显示用户信息。我喜欢使用ProgressDialog

pd = ProgressDialog.show(MainActivity.this,
                        "", "Processing",
                        true, false);

连接到网络和下载数据时处理,但是当网络不可用时,它立即返回,我的进度对话框只是快速闪烁。是否有更优雅的解决方案然后将catch线程放入睡眠状态一段时间:

try{
  //connecting and calculating
}
catch(Exception exc){
Thread.sleep(400);
handler.sendEmptyMessage(0);
}

无论成功与否,我都需要为ProgressDialog设置最短时间?有谁知道如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

这会对你有所帮助

在对话框初始化

之后立即编写以下代码
new Thread(){
public void run(){
try{
Thread.sleep(5000); 
}
catch(Exception ex){}
try{
Message msg=actHandler.obtainMessage();
actHandler.sendMessage(msg);
}
catch(NullPointerException ex){
Log.e("Handler Exception :",ex.toString());
dialog.dismiss();
}
}
}.start();


actHandler=new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
doSomthing();
}
};


public void doSomething(){
dialog.dismiss();
}

答案 1 :(得分:1)

我会反过来这样做:只显示你的progressDialog 如果你可以建立连接。我觉得让用户等待0.4秒,你已经知道的结果是毫无意义的;)