fatel Exception ProgressDialog android studio : am try to get data json via volley in  android studio , class name obs_bgw , my code working fine but when run the app after 1 min auto refresh i get app stop working and i check the error in firbase crash is 


    Exception android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@cc00538 is not valid; is your activity running?
    android.view.ViewRootImpl.setView (ViewRootImpl.java:903)
    android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:377)
    android.view.WindowManagerImpl.addView (WindowManagerImpl.java:97)
    android.app.Dialog.show (Dialog.java:408)
    android.app.ProgressDialog.show (ProgressDialog.java:151)
    android.app.ProgressDialog.show (ProgressDialog.java:134)
    android.app.ProgressDialog.show (ProgressDialog.java:129)
    net.myaapp.app.weatherapp.obs_bgw.sendjsonrequest (obs_bgw.java:51)
    net.myaapp.app.weatherapp.obs_bgw$3.run (obs_bgw.java:88)
    android.os.Handler.handleCallback (Handler.java:751)
    android.os.Handler.dispatchMessage (Handler.java:95)
    android.os.Looper.loop (Looper.java:154)
    android.app.ActivityThread.main (ActivityThread.java:6776)
    java.lang.reflect.Method.invoke (Method.java)
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1496)
    com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1386)

my code 

    package net.myaapp.app.weatherapp;
    
    import android.app.ProgressDialog;
    import android.os.Handler;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;
    
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonObjectRequest;
    import com.android.volley.toolbox.Volley;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    public class obs_bgw extends AppCompatActivity {
        RequestQueue rq;
        TextView timeDesc, tempDesc, windspeedDesc, windguestDesc, humdityDesc,pressuresDesc;
        int ages;
        int temp;
        int windspeed;
        int windguest;
        int humdity;
        double pressure;
        long timeupdate;
    
        String url = "station=I1410&units=metric&v=2.0&format=json";
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_bgw_obs);
    
            rq = Volley.newRequestQueue(this);
    
            timeDesc = (TextView) findViewById(R.id.timeupdateDesc);
            tempDesc = (TextView) findViewById(R.id.tempid);
            windspeedDesc = (TextView) findViewById(R.id.windid);
            windguestDesc = (TextView) findViewById(R.id.windgustid);
            humdityDesc = (TextView) findViewById(R.id.humdid);
            pressuresDesc = (TextView) findViewById(R.id.pressuresDesc);
    
            sendjsonrequest();
        }
    
        public void sendjsonrequest() {
            final ProgressDialog dialog = ProgressDialog.show(this,null, "Please Wait");
    
            JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
    
                @Override
                public void onResponse(JSONObject response) {
    
                    dialog.dismiss();
                    try {
    
                        JSONObject stationsJO = response.getJSONObject("stations");
                        JSONObject I1410JO = stationsJO.getJSONObject("I1410");
                        temp = I1410JO.getInt("temperature");
                        windspeed = I1410JO.getInt("wind_speed");
                        windguest = I1410JO.getInt("wind_gust_speed");
                        humdity = I1410JO.getInt("humidity");
                        timeupdate = I1410JO.getLong("updated") * 1000L;
                        pressure = I1410JO.getDouble("pressure");
    
                        tempDesc.setText(Integer.toString(temp)+" C");
                        windspeedDesc.setText(Integer.toString(windspeed)+"  كم ");
                        windguestDesc.setText(Integer.toString(windguest)+"  كم ");
                        humdityDesc.setText(Integer.toString(humdity)+"  % ");
                        pressuresDesc.setText(Integer.toString((int) pressure)+" in ");
                        timeDesc.setText(getDate(timeupdate));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    dialog.dismiss();
                }
            });
            rq.add(jsonObjectRequest);
            final Handler handler = new Handler();
            final Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    sendjsonrequest();
                    handler.postDelayed(this, 60000);//60 second delay
                }
            };
            handler.postDelayed(runnable, 60000);
        }
    
        private String getDate(long timeStamp) {
            try {
                DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
                Date netDate = (new Date(timeStamp));
                return sdf.format(netDate);
            } catch (Exception ex) {
                return "xx";
            }
        }
    
    
    }

the problem is withe Progress Dialog  ,  line 51         `final ProgressDialog dialog = ProgressDialog.show(this,null, "Please Wait");`  when he refresh date stop working 
