简体   繁体   English

如何为进度对话框添加延迟 - Java - Android - Android Studio

[英]How can add a delay to Progress Dialog - Java - Android - Android Studio

I want to make a progress dialog appear for 2 or 3 seconds.我想让一个进度对话框出现 2 或 3 秒。
It won't actually do anything other than say progress.除了说进步之外,它实际上不会做任何事情。
I want to add a delay in progress bar.我想在进度条中添加延迟。 How can succeed this?这怎么可能成功?
It appears at first but for a very short time.它起初出现,但时间很短。
My code is below:我的代码如下:

     private void registerNewAccount(String username,String email, String password, String mobile, String gender){
            final ProgressDialog progressDialog = new ProgressDialog( RegisterActivity.this);
            progressDialog.setCancelable(false);
            progressDialog.setIndeterminate(false);
            progressDialog.setTitle("Registering New Account");
            progressDialog.show();
            String uRl = "http://192.168.1.6/Projects/LoginRegisterAndroid/register.php";
            StringRequest request = new StringRequest(Request.Method.POST, uRl, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    if (response.equals("Successfull")){
                        progressDialog.dismiss();
                        Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show();
                        startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
                        finish();
                    }
                    else{
                        progressDialog.dismiss();
                        Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    progressDialog.dismiss();
                    Toast.makeText(RegisterActivity.this, error.toString(), Toast.LENGTH_SHORT).show();
                }
            }){
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    HashMap<String,String> param = new HashMap<>();
                    param.put("username", username);
                    param.put("email", email);
                    param.put("psw", password);
                    param.put("mobile", mobile);
                    param.put("gender", gender);
                    return param;
                }
            };
    
            request.setRetryPolicy(new DefaultRetryPolicy(30000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
            MySingleton.getmInstance(RegisterActivity.this).addToRequestQueue(request);
        }

}

I'd suggest using a Handler perhaps:我建议使用Handler也许:

new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
        @Override
        public void run() {
            // dismiss progress dialog here 
        }
}, 3000)

This can be done inside the onRepsonse method in your Volley request这可以在 Volley 请求的onRepsonse方法中完成

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM