Android 如何处理并行多截击请求的单进程对话

Android 如何处理并行多截击请求的单进程对话,android,android-fragments,android-asynctask,android-volley,progressdialog,Android,Android Fragments,Android Asynctask,Android Volley,Progressdialog,我正在使用包含两个选项卡的tablayout。每个呼叫截击请求。我想在第一个请求启动时显示进度对话框,在最后一个请求完成后关闭对话框。使用AsyncTask,它可以在后台作业之前启动任务,在后台作业之后执行一些任务 在我的示例中,我在preexecute中创建了一个进度对话框,然后开始。在完成整个doinbackground截击请求后,它将在执行后被驳回 private class initoffline extends AsyncTask<String, String, String&g

我正在使用包含两个选项卡的tablayout。每个呼叫截击请求。我想在第一个请求启动时显示进度对话框,在最后一个请求完成后关闭对话框。

使用AsyncTask,它可以在后台作业之前启动任务,在后台作业之后执行一些任务

在我的示例中,我在preexecute中创建了一个进度对话框,然后开始。在完成整个doinbackground截击请求后,它将在执行后被驳回

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();


        }
    }
私有类initoffline扩展异步任务{
私有字符串resp;
私人对话;
@凌驾
受保护的void onPreExecute(){
pDialog=新建进度对话框(SplashActivity.this);
setMessage(“第一次初始化…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
StringRequest StringRequest=新的StringRequest(URL1,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
SharedReferences pref=getApplicationContext().getSharedReferences(“MirSP”,Context.MODE\u PRIVATE);
SharedReferences.Editor=pref.edit();
编辑器.putString(“离线项目”,响应);
editor.apply();
Log.e(“请求1”,响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
StringRequestStringRequest1=新的StringRequest(URL2),
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
SharedReferences pref=getApplicationContext().getSharedReferences(“MirSP”,Context.MODE\u PRIVATE);
SharedReferences.Editor=pref.edit();
编辑器.putString(“OFFLINEFLATNAMES”,响应);
editor.apply();
Log.e(“请求2”,响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
StringRequestStringRequest2=新的StringRequest(URL3,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
SharedReferences pref=getApplicationContext().getSharedReferences(“MirSP”,Context.MODE\u PRIVATE);
SharedReferences.Editor=pref.edit();
编辑器.putString(“脱机图像”,响应);
editor.apply();
Log.e(“请求3”,响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
StringRequest stringRequest3=新的StringRequest(URL4,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
SharedReferences pref=getApplicationContext().getSharedReferences(“MirSP”,Context.MODE\u PRIVATE);
SharedReferences.Editor=pref.edit();
编辑器.putString(“离线视频”,响应);
editor.apply();
Log.e(“请求4”,响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
RequestQueue RequestQueue=Volley.newRequestQueue(getApplicationContext());
添加(stringRequest);
添加(stringRequest1);
添加(stringRequest2);
添加(stringRequest3);
返回响应;
}
@凌驾
受保护的void onPostExecute(字符串结果){
pDialog.disclose();
}
}