Android 如何处理并行多截击请求的单进程对话
我正在使用包含两个选项卡的tablayout。每个呼叫截击请求。我想在第一个请求启动时显示进度对话框,在最后一个请求完成后关闭对话框。使用AsyncTask,它可以在后台作业之前启动任务,在后台作业之后执行一些任务 在我的示例中,我在preexecute中创建了一个进度对话框,然后开始。在完成整个doinbackground截击请求后,它将在执行后被驳回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
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();
}
}