آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ایجاد دیالوگ سعی مجدد در اتصال به سرور در کد volley

mosafer  9 سال پیش  9 سال پیش
0 0

با سلام 

هنگامی که دستگاه کاربر به متصل نیست و کاربر برنامه رو اجرا میکنه میخوام مثل خیلی از برنامه ها وقتی 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 پاسخ وجود دارد.
پاسخ به سوال 
atf  9 سال پیش
0 0

شما باید از 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();
    }

    }

 

0 0
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید.. (9 سال پیش)
0 0
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید.. (9 سال پیش)
0 0
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید.. (9 سال پیش)
0 0
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید.. (9 سال پیش)
0 0
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید.. (9 سال پیش)
0 0
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید.. (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .