As a result, there was a leak of the window that was originally added here, and other problems, problems

I have a few questions that I would like to share with you guys.

All my files are on GITHUB

The first refers to the error that is in the header. FirstRun.java:82applies to alert.show();and FirstRun.java:63toalertDialog.show();

The behavior that I observe is as follows:

  • Within a few seconds, the first Dialog warning appears.
  • Application closes (force does not close)
  • When I start to restart the application, a blank screen is displayed (see the following problems), which means that my second action is being performed. I use SharedPrefs to find out if a single action should be run.

Finish logcat:

    32444-32444/carpedujourproductions.quickpronote E/WindowManager: Activity carpedujourproductions.quickpronote.FirstRun has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{967f7300 V.E..... R.....ID 0,0-729,594} that was originally added here
            android.view.WindowLeaked: Activity carpedujourproductions.quickpronote.FirstRun has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{967f7300 V.E..... R.....ID 0,0-729,594} that was originally added here
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:281)
            at carpedujourproductions.quickpronote.FirstRun.onCreate(FirstRun.java:63)
            at android.app.Activity.performCreate(Activity.java:5207)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2281)
            at android.app.ActivityThread.access$600(ActivityThread.java:148)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5124)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:110)
            at dalvik.system.NativeStart.main(Native Method)  

32444-32444/carpedujourproductions.quickpronote E/WindowManager: Activity carpedujourproductions.quickpronote.FirstRun has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{968738b8 V.E..... R......D 0,0-729,585} that was originally added here
            android.view.WindowLeaked: Activity carpedujourproductions.quickpronote.FirstRun has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{968738b8 V.E..... R......D 0,0-729,585} that was originally added here
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:281)
            at android.app.AlertDialog$Builder.show(AlertDialog.java:951)
            at carpedujourproductions.quickpronote.FirstRun.onCreate(FirstRun.java:82)
            at android.app.Activity.performCreate(Activity.java:5207)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2281)
            at android.app.ActivityThread.access$600(ActivityThread.java:148)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5124)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:110)
            at dalvik.system.NativeStart.main(Native Method)

Another thing:

SharedPrefs . , , , /data/data/carpedujourproductions.quickpronote/shared_prefs/ ( ) (ES; Solid)


:

. MainActivity.java, Android Studio , urlt url . , , ? ( etab_selurlt → read user_isurl → JS- url .

, . .

+2
2

2- , FirstRun.java:

Spinner, Spinner2

, , onItemSelected() , :

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    switch (parent.getId()) {
    case R.id.spinner:
        etab_sel = parent.getItemAtPosition(pos).toString();
        Spinner2.setVisibility(View.VISIBLE);
    case R.id.spinner2:
        user_is = parent.getItemAtPosition(pos).toString();
        onStop();
    }
}

, Spinner, case R.id.spinner , , case R.id.spinner2, onStop().

? break; ?

, onStop() finish(). alertDialog dialog , :

Activity carpedujourproductions.quickpronote.FirstRun has leaked window

Activity carpedujourproductions.quickpronote.FirstRun has leaked window

, :

onItemSelected() , a Spinner .

, R.id.spinner onItemSelected(), case R.id.spinner > onStop() editor.putBoolean("IsInitialized", true); finish(); alertDialog alert

:

editor.putBoolean("IsInitialized", true);

onStop(), FirstRun :

( MainActivity.java)

boolean IsInitialized = settings.getBoolean("IsInitialized", false);

if (IsInitialized == false) {
    Intent intent = new Intent(MainActivity.this, FirstRun.class);
    startActivity(intent);
    finish();
}

, . FirstRun. IsInitialized true, ?

(), :

// Declare two global boolean variables
boolean justStarted_1 = true;
boolean justStarted_2 = true;

....
....

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

    // Spinner is set; Ignore
    if (justStarted_1) {

        justStarted_1 = false;

    // Spinner2 is set; ignore
    } else if (justStarted_2) {

        justStarted_2 = false;

    // finally: here
    } else {
        switch (parent.getId()) {
        case R.id.spinner:
            etab_sel = parent.getItemAtPosition(pos).toString();
            Spinner2.setVisibility(View.VISIBLE);
            break;
        case R.id.spinner2:
            user_is = parent.getItemAtPosition(pos).toString();
            onStop();
            break;
        }
    }
}

: , FirstRun. :

editor.putBoolean( "IsInitialized", false);

FirstRun, false true, - !

+4

, , . .

AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
        alertDialog.setTitle("Remise \u00e0 z\u00e9ro");
        alertDialog.setMessage("Voulez-vous effacer tous vos param\u00e8tres (Identifiant, Mot de passe, type d\'accès de votre appareil?");
        alertDialog.setButton("Oui", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {

                SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
                SharedPreferences.Editor editor = settings.edit();
                editor.putBoolean("IsInitialized", false);
                editor.putString("etab", "");
                editor.putString("name", "");
                editor.putString("key", "");
                editor.putString("manurl", manurl);
                editor.putString("user_is", "");
                editor.commit();
                finish();

            }
        });
        alertDialog.setButton("Non", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialogInterface, int i) {
            }
        });
+2

All Articles