-2

This is my code

class BuatPeminjaman extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(DetailsActivity.this);
        pDialog.setMessage("Booking...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    @Override
    protected String doInBackground(String... arg) {
        int success;
        try {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("gedung", gedung));
            params.add(new BasicNameValuePair("lantai", lantai));
            params.add(new BasicNameValuePair("nim", nim));
            params.add(new BasicNameValuePair("nama", nama));
            params.add(new BasicNameValuePair("jumlah peserta", peserta));
            params.add(new BasicNameValuePair("keperluan", keperluan));
            params.add(new BasicNameValuePair("ruang", ruang));
            Log.d("request!", "starting");
            JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "GET", params);
            // checking log for json response
            Log.d("proses membuat", json.toString());
            // success tag for json
            success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                Log.d("Berhasil membuat !", json.toString());
                return json.getString(TAG_MESSAGE);
            } else {
                return json.getString(TAG_MESSAGE);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(String message) {
        pDialog.dismiss();
        Toast.makeText(DetailsActivity.this, "Berhasil meminjam kelas", Toast.LENGTH_SHORT).show();
        Intent i = new Intent(DetailsActivity.this, MainActivity.class);
        startActivity(i);
    }
}

I don't know what's the error mean. I'm already call dismiss in my dialog, but it still doesn't work. It show the dialog but it force close after that. Am I have the error because the JSON I'm trying to post or what?

This is my logcat

E/WindowManager: android.view.WindowLeaked: Activity com.mqa.android.peminjamankelas.DetailsActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{1a6f9473 V.E..... R......D 0,0-1026,304} that was originally added here
                 at android.view.ViewRootImpl.<init>(ViewRootImpl.java:363)
                 at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271)
                 at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
                 at android.app.Dialog.show(Dialog.java:298)
                 at com.mqa.android.peminjamankelas.DetailsActivity$BuatPeminjaman.onPreExecute(DetailsActivity.java:87)
                 at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:591)
                 at android.os.AsyncTask.execute(AsyncTask.java:539)
                 at com.mqa.android.peminjamankelas.DetailsActivity$1.onClick(DetailsActivity.java:73)
                 at android.view.View.performClick(View.java:4780)
                 at android.view.View$PerformClick.run(View.java:19866)
                 at android.os.Handler.handleCallback(Handler.java:739)
                 at android.os.Handler.dispatchMessage(Handler.java:95)
                 at android.os.Looper.loop(Looper.java:135)
                 at android.app.ActivityThread.main(ActivityThread.java:5254)
                 at java.lang.reflect.Method.invoke(Native Method)
                 at java.lang.reflect.Method.invoke(Method.java:372)
                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Please help. Or if you has any suggestion how to post the data to database without the error, that's OK

Qube
  • 543
  • 3
  • 9
  • 23
  • 2
    Possible duplicate of [Activity has leaked window that was originally added](https://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added) – Zoe May 19 '18 at 15:20
  • i'm trying call dismiss() but not working – Qube May 20 '18 at 04:08

2 Answers2

0

Make sure that the height of the layout is not too long when using custom dialog.

Leenah
  • 850
  • 3
  • 15
  • 36
-1

You're trying to show a Dialog after you've exited an Activity.

Call dismiss() on the Dialog instance you created before exiting your Activity, e.g. in onPause() or onDestroy()

see link

Khemraj Sharma
  • 57,232
  • 27
  • 203
  • 212
  • i'm trying to remove the intent but still error. i'm call dismiss() in onPostExecute() – Qube May 20 '18 at 04:07
  • You should dismiss on onDestroy() (for activity) or onDestroyView() (for fragment) also, because your async task dismiss dialog after that fragment is destroyed. – Khemraj Sharma May 20 '18 at 06:13