خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
ایجاد دیالوگ سعی مجدد در اتصال به سرور در کد volley
مدیریت گفتگو
آخرین تغییر: 9 سال پیش
با سلام
هنگامی که دستگاه کاربر به متصل نیست و کاربر برنامه رو اجرا میکنه میخوام مثل خیلی از برنامه ها وقتی ProgresBar اجرا شد و خطای عدم اتصال رو نشون دادم یه دیالوگ نمایش داده بشه که با زدن دکمه تایید دوباره ProgresBar لود کنه و دوباره به سرور متصل بشه و الی آخر..
اینم کدم ...
StringRequest request = new StringRequest(Request.Method.POST, G.url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("response", response.toString());
layoutProgres.setVisibility(View.GONE);
pager.setVisibility(View.VISIBLE);
// pDialog.hide();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Error: " + error.getMessage());
// pDialog.hide();
layoutProgres.setVisibility(View.GONE);
imageViewNoConnect.setVisibility(View.VISIBLE);
final Dialog dialog = new Dialog(ActivityMain.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setContentView(R.layout.dialog_exit);
TextView txt = (TextView) dialog.findViewById(R.id.textView_dialog_exit);
txt.setText("سعی مجدد برای ارتباط با سرور..." + " " + error.toString());
Button btn_ok = (Button) dialog.findViewById(R.id.btn_ok_dialog);
btn_ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.dismiss();
اینجا به چه شکلی دوباره این کد رو فراخوانی کنم
} }); Button btn_no = (Button) dialog.findViewById(R.id.btn_no_dialog);
btn_no.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0)
{ dialog.dismiss(); } }); dialog.show(); } })
{ Map<String, String> params = new HashMap<String, String>();
@Override protected Map<String, String> getParams()
{ params.put("id", "1"); return params; }
@Override public Map<String, String> getHeaders() throws AuthFailureError
{ params.put("id", "1"); return params; } };
RequestQueue queue = Volley.newRequestQueue(ActivityMain.this);
queue.add(request);
پاسخها 1
شما باید از AsyncTask استفاده کنید
private class AsyncCaller extends AsyncTask<Void, Void, Void>{
ProgressDialog pdLoading = new ProgressDialog(AsyncExample.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
//این قسمت قبل از دریافت اطلاعات از سرور اجرا میشه
pdLoading.setMessage("\tLoading...");
pdLoading.show();
}
@Override
protected Void doInBackground(Void... params) {
//دریافت اطلاعات از سرور تو این قسمت باید انجام بشه
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//زمانی که اطلاعات از سرور دربافت میشه
pdLoading.dismiss();
}
}
نظرات
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات