بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
mosafer 10 سال پیش
آخرین تغییر: 10 سال پیش

با سلام 

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

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

    }

 

نظرات

mosafer 10 سال پیش
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
mosafer 10 سال پیش
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
mosafer 10 سال پیش
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
mosafer 10 سال پیش
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
mosafer 10 سال پیش
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..
mosafer 10 سال پیش
خب یه جا خوندم که اگر از کتابخانه وولی استفاده میکنید از AsyncTask استفاده نکنید..

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