android - 如何以最短加载时间(2 秒)在 AsyncTask 中添加进度对话框

标签 android

当用户点击按钮时,将从 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/

相关文章:

安卓 HCE : are there rules for AID?

android - 无法从 Util 类型对非静态方法 getIMEI() 进行静态引用

android - 哪些工具和技术用于将视频从Youtube App转换到Smart TV?

c# - Xamarin Android 中的自动完成 TextView

android - 谷歌 ExoPlayer 指南

android - 如何显示水平和垂直渐变分隔线?

android - Firebase 在不读取快照或尝试写入(对于唯一用户名)的情况下检查值是否存在?

java - 无论屏幕方向如何,如何获得正确的方位(磁性方向)?

java - 我们能否在没有AID的情况下打开 channel 并控制嵌入式SE的力量?

android - 如何向另一个 Activity 显示消息和照片