如何在android中同步工作?我希望当凌空从服务器获得响应时,执行程序停止并等待凌空的结果。
答案 0 :(得分:-1)
您可以显示特定时间的加载程序,如下所示:
public void getResult() {
try {
final ProgressDialog pDialog = new ProgressDialog(HomeActivity.this);
pDialog.setMessage("Loading...");
pDialog.show();
StringRequest sr = new StringRequest(Request.Method.POST, MapAppConstant.API , new Response.Listener<String>() {
@Override
public void onResponse(String response) {
pDialog.dismiss();
Log.d("", ".......response====" + response.toString());
////////
try {
JSONObject object = new JSONObject(response);
String serverCode = object.getString("code");
String serverMessage = object.getString("message");
// Toast.makeText(HomeActivity.this, "" + serverMessage, Toast.LENGTH_SHORT).show();
if (serverCode.equalsIgnoreCase("0")) {
}
if (serverCode.equalsIgnoreCase("1")) {
try {
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pDialog.dismiss();
// VolleyLog.d("", "Error: " + error.getMessage());
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(HomeActivity.this, "Timeout Error",
Toast.LENGTH_LONG).show();
} else if (error instanceof AuthFailureError) {
VolleyLog.d("", "" + error.getMessage() + "," + error.toString());
} else if (error instanceof ServerError) {
VolleyLog.d("", "" + error.getMessage() + "," + error.toString());
} else if (error instanceof NetworkError) {
VolleyLog.d("", "" + error.getMessage() + "," + error.toString());
} else if (error instanceof ParseError) {
VolleyLog.d("", "" + error.getMessage() + "," + error.toString());
}
}
}
) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("user_language", prefshelper.getUserLanguageFromPreference());
return params;
}
};
sr.setShouldCache(true);
sr.setRetryPolicy(new DefaultRetryPolicy(50000 * 2, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
VolleySingleton.getInstance(HomeActivity.this.getApplicationContext()).addToRequestQueue(sr);
} catch (Exception e) {
e.printStackTrace();
}
}