【问题标题】:How to handle single progressdialog with parallel multiple Volley request如何处理具有并行多个 Volley 请求的单个进度对话框
【发布时间】:2016-08-19 06:55:45
【问题描述】:

我正在使用 tablayout 包含两个选项卡。每次呼叫凌空请求。我想在第一个请求开始时显示进度对话框,并在最后一个请求完成后关闭对话框。

【问题讨论】:

    标签: android android-fragments android-asynctask android-volley progressdialog


    【解决方案1】:

    使用 AsyncTask ,它有 PreExecute 可以在后台 Job 之前启动任务,而 PostExecute 可以在后台 Job 之后执行一些任务。

    在我的示例中,我在 preexecute 中做了一个进度对话框并开始了。完成整个 doinbackground volley request 后,将在 postexecute 中关闭。

    private class initoffline extends AsyncTask<String, String, String> {
    
            private String resp;
            private ProgressDialog pDialog;
    
            @Override
            protected void onPreExecute() {
                pDialog = new ProgressDialog(SplashActivity.this);
                pDialog.setMessage("First Initializing...");
                pDialog.setIndeterminate(false);
                pDialog.setCancelable(false);
                pDialog.show();
            }
    
            @Override
            protected String doInBackground(String... params) {
    
                StringRequest stringRequest = new StringRequest(URL1,
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response) {
                                SharedPreferences pref = getApplicationContext().getSharedPreferences("MirSP", Context.MODE_PRIVATE);
                                SharedPreferences.Editor editor = pref.edit();
                                editor.putString("OFFLINEPROJECT", response);
                                editor.apply();
                                Log.e("Req 1", response);
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
    
                            }
                        });
            StringRequest stringRequest1 = new StringRequest(URL2",
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            SharedPreferences pref = getApplicationContext().getSharedPreferences("MirSP", Context.MODE_PRIVATE);
                            SharedPreferences.Editor editor = pref.edit();
                            editor.putString("OFFLINEFLATNAMES", response);
                            editor.apply();
                            Log.e("Req 2", response);
                        }
                    },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
    
                            }
                        });
                StringRequest stringRequest2 = new StringRequest(URL3,
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response) {
                                SharedPreferences pref = getApplicationContext().getSharedPreferences("MirSP", Context.MODE_PRIVATE);
                                SharedPreferences.Editor editor = pref.edit();
                                editor.putString("OFFLINEIMAGE", response);
                                editor.apply();
                                Log.e("Req 3", response);
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
    
                            }
                        });
                StringRequest stringRequest3 = new StringRequest(URL4,
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response) {
                                SharedPreferences pref = getApplicationContext().getSharedPreferences("MirSP", Context.MODE_PRIVATE);
                                SharedPreferences.Editor editor = pref.edit();
                                editor.putString("OFFLINEVIDEO", response);
                                editor.apply();
                                Log.e("Req 4", response);
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
    
                            }
                        });
                RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
                requestQueue.add(stringRequest);
                requestQueue.add(stringRequest1);
                requestQueue.add(stringRequest2);
                requestQueue.add(stringRequest3);
    
    
                return resp;
            }
    
            @Override
            protected void onPostExecute(String result) {
                pDialog.dismiss();
    
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 2016-11-30
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      相关资源
      最近更新 更多