当用户点击按钮时,将从 Activity A 转到 Activity B。
但是,由于在 Activity B 中,数据将从 Internet 下载,因此我想添加一个进度对话框。
有时,连接会非常快,不到一秒,有时会超过 5 秒。
如果进度对话框显示 <1 秒,我认为这对用户体验来说非常糟糕。
因此,我想添加一个最短加载时间,例如 2 秒。
这意味着即使加载时间少于 2 秒,进度对话框也将至少显示 2 秒。
有什么办法吗?
最佳答案
您可以使用下面的代码。在此处传递对话的时间和对象。
public void timerDelayRemoveDialog(long time, final Dialog d){
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
d.dismiss();
}
}, time);
}
已编辑
你可以使用这个示例代码:
class LoginProgressTask extends AsyncTask<String, Integer, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
try {
Thread.sleep(4000); // Do your real work here
} catch (InterruptedException e) {
e.printStackTrace();
}
return Boolean.TRUE; // Return your real result here
}
@Override
protected void onPreExecute() {
showDialog(AUTHORIZING_DIALOG);
}
@Override
protected void onPostExecute(Boolean result) {
// result is the value returned from doInBackground
removeDialog(AUTHORIZING_DIALOG);
Intent i = new Intent(HelloAndroid.this, LandingActivity.class);
startActivity(i);
}
}
关于android - 如何以最短加载时间(2 秒)在 AsyncTask 中添加进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402788/