我需要显示用户信息,同时应用程序处理一些数据。我像这样使用ProgressDialog
pd = ProgressDialog.show(MainActivity.this,
"", "Processing",
true, false);当连接到网络并下载数据时,处理会花费很长时间,但当网络不可用时,它会立即返回,并且我的进度对话框闪现得非常快。有没有比让catch Thread休眠一段时间更好的解决方案:
try{
//connecting and calculating
}
catch(Exception exc){
Thread.sleep(400);
handler.sendEmptyMessage(0);
}无论成功还是失败,我都需要为我的ProgressDialog设置最小时间?有谁知道如何做到这一点吗?
发布于 2011-10-10 17:34:21
这会对你有帮助
在对话框初始化后立即编写以下代码
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();
}发布于 2011-10-10 16:25:52
相反,我会这样做:只有在你能建立连接的情况下才显示你的progressDialog。我觉得让用户等待0.4秒来得到你已经知道的结果是没有意义的。)
https://stackoverflow.com/questions/7710132
复制相似问题