# Volley onDestroy angemeldet bleiben Fehler... unabhänging vom Login



## wer112 (23. Mai 2022)

Liebe Java Forum Gemeinde,

ich versuche meinProblem zu schildern. Ich versuche gerade im Kundenbereich des App Stores die App einstellungen zu machen, bevor ich zu den BackgroundService gehe, die ich überhaubt nicht verstehe/kann.

Ablauf:

Wenn ich die App starte, dann komme ich zum Login. Ich logge mich ein, da wird die SessionID die beim erfolgreichem Login ist, erstellt und in eine ShaPref gepeichert.

Wenn es erfolgreich war, wird es zur Fragment Steuerung weitergladen. Dann wird die ShaPref aufgerufen und in den String gespeichert.

Dann werden die Benutzerdaten aufgerufen(Wird einfach ohne Inhalt gepostet. An den Header wird die SessionID drangehangen).
Nachdem Ich den Header gepostet habe, erhalte ich ein JSON mit den Nutzerdaten.

Wird alles erfolgreich angezeigt!


Problem ist: Wenn ich das Login überspringe, weil ich angemeldet sein möchte, dann komme ich auf die Fragment steuerung und bekomme zwei mal ein Volley Error.
Es wird der try übersprungen.

Wiso klappt es nicht, obwohl es bei einem normalen Login auch klappt, da wird ja nur die ID an den Header gehangen und es kommt eine Antwort.
Aber wenn ich jetzt den Login Überspringe und auf die Fragment Steuerung komme und die ID dranhänge klappt es nicht.

In Pause klappt es gut, nicht im Destroy. 

Login und Fragment Steuerung sind ja nicht verbunden. zum Abruf der Daten, wird nur die ID gebraucht, aber die ist ja erhalten.

Ich speichere dass nun in dem try block von der Abfrage, als letztes, da kann ich mir sicher sein, dass der Code dann da ist. 
Habe daraus als letztes die Methode aufgerufen, klappte nicht auch nicht mir einer gefährlichen/sinnlose Methode Schleife....

Wenn ich das speichere, egal wie Habe ich Probleme(Werde ich zurück gehauen..), aber nicht wenn ich das über die Einstellungen der App speichere. 

Wenn ich das wegmache, komme ich drauf, aber ich erhalte die Errors, was aber bei einem normalen Login nicht passiert.

Und es macht nixs anderes, wie wenn es normal einloggt, da die App ja nur die ShaPref SeesionId benutzt und an den Header hängt.

Bei onPause klappt es...

Was könnte das Problem sein?

Diese Fehlermeldung zeigt mir Volley im Dialog an:



kommt aber nur, wenn ich angemeldet ist(Überspringen der Login Seite)
Sonst kommt das nie. Ich mache ja immer das gleiche in der Acktivity(Class) String aus ShaPref holen und an den header hängen und posten. 


Wer weiß, wieso das nur bei der überspringung ist? Schließlich ist ja die ID noch da und wird im Toast auch erfolgreich angezeigt...


----------



## KonradN (24. Mai 2022)

Bitte zeige die genaue Fehlermeldung (und nicht nur so abgeschnitten!)

Es sieht so aus, dass ein JSON nicht geparst werden kann. Aber ohne Details kann man da nichts sagen.


----------



## wer112 (24. Mai 2022)

KonradN hat gesagt.:


> Bitte zeige die genaue Fehlermeldung (und nicht nur so abgeschnitten!)


Das wurde so im Alert angezeigt, habe nur das Design Weggeschnitten. Leider passt mein Dialog sich nicht automatisch an.



KonradN hat gesagt.:


> Es sieht so aus, dass ein JSON nicht geparst werden kann. Aber ohne Details kann man da nichts sagen.


Ich habe mal überall Log.e gemacht, um die Fehlermeldung komplett anzeigen zu lassen und den normalen Zustand.

Wenn ich mich normal einlogge:


```
2022-05-24 11:14:33.719 10483-10483/? E/ungpassautofil: Not starting debugger since process cannot load the jdwp agent.
2022-05-24 11:14:33.721 10483-10483/? E/USNET: USNET: appName: com.samsung.android.samsungpassautofill
2022-05-24 11:14:33.772 10483-10483/? E/[SPAF]AutofillService: Unavailable Samsung Account
2022-05-24 11:14:35.697 971-1055/? E/Watchdog: !@Sync: 6157 heap: 76 / 88 [2022-05-24 11:14:35.696] sdogWay: softdog FD: 969
2022-05-24 11:14:39.340 419-428/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:39.341 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:39.342 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:39.342 419-428/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:39.342 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:39.342 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:39.343 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:39.343 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:39.351 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:39.352 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:40.225 419-428/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:40.226 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:40.226 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:40.226 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:40.227 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:40.227 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:40.228 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:40.229 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:40.236 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:40.237 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:42.280 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:42.280 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine : 4 7 4000 2050 0
2022-05-24 11:14:42.280 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:1
2022-05-24 11:14:42.281 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:42.281 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine OK
2022-05-24 11:14:42.387 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:42.388 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:42.458 7690-9725/? E/WakeLock: GCM_HB_ALARM release without a matched acquire!
2022-05-24 11:14:42.482 558-558/? E/android.hardware.health@2.1-service-samsung: Could not open /sys/class/power_supply/battery/lrp
2022-05-24 11:14:42.652 10530-10530/? E/ocess.gservice: Not starting debugger since process cannot load the jdwp agent.
2022-05-24 11:14:42.654 10530-10530/? E/USNET: USNET: appName: com.google.process.gservices
2022-05-24 11:14:42.787 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:42.788 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine : 4 7 4000 2050 0
2022-05-24 11:14:42.788 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:1
2022-05-24 11:14:42.789 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:42.789 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine OK
2022-05-24 11:14:42.895 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:42.895 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.196 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:43.196 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine : 4 7 4000 2050 0
2022-05-24 11:14:43.196 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:1
2022-05-24 11:14:43.197 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.197 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine OK
2022-05-24 11:14:43.302 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:43.304 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.597 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:43.597 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:43.598 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.598 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:43.598 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:43.598 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:43.599 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:43.599 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.607 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:43.608 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.732 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:43.733 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:43.733 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.734 419-428/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:43.734 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:43.734 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:43.735 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:43.735 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.743 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:43.743 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.969 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:43.969 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:43.970 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.970 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:43.970 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:43.970 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:43.971 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:43.971 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:43.979 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:43.979 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.279 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:44.280 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:44.280 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.280 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:44.280 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:44.280 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:44.281 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:44.281 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.289 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:44.291 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.480 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:44.481 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:44.481 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.481 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:44.482 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:44.482 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:44.482 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:44.483 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.490 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:44.491 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.770 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:44.771 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:44.771 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.772 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:44.773 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:44.773 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:44.774 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:44.775 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:44.782 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:44.782 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:45.696 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:45.697 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:45.697 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:45.698 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:45.699 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:45.699 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:45.699 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:45.700 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:45.707 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:45.708 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:45.815 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:45.816 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:45.816 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:45.816 419-428/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:45.816 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:45.816 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:45.817 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:45.817 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:45.825 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:45.825 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.072 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.073 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:46.074 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.075 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.075 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:46.075 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:46.075 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:46.076 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.083 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:46.084 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.295 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.295 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:46.295 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.296 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.296 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:46.296 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:46.296 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:46.297 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.305 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:46.305 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.483 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.483 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:46.485 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.485 419-428/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.485 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:46.485 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:46.486 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:46.487 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.494 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:46.495 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.747 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.747 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:14:46.748 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.748 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:46.749 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:14:46.749 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:14:46.749 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:14:46.750 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:46.757 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:46.758 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:47.347 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:14:47.348 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine : 4 7 4000 2050 0
2022-05-24 11:14:47.348 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:1
2022-05-24 11:14:47.349 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:47.349 612-612/? E/SecVibrator-HAL2.2_A: sehPerformHapticEngine OK
2022-05-24 11:14:47.426 10585-10585/? E/oadcastreceive: Not starting debugger since process cannot load the jdwp agent.
2022-05-24 11:14:47.428 10585-10585/? E/USNET: USNET: appName: com.android.cellbroadcastreceiver
2022-05-24 11:14:47.454 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:14:47.454 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:14:47.690 971-6746/? E/WindowManager: win=Window{cd3b42f u0 InputMethod} destroySurfaces: appStopped=true win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=8 caller=com.android.server.wm.WindowManagerService.tryStartExitingAnimation:2955 com.android.server.wm.WindowManagerService.relayoutWindow:2671 com.android.server.wm.Session.relayout:242 android.view.IWindowSession$Stub.onTransact:790 com.android.server.wm.Session.onTransact:176 android.os.Binder.execTransactInternal:1215 android.os.Binder.execTransact:1179
2022-05-24 11:14:48.549 10402-10402/com.andrealfredklug.klugstore E/Kundendaten Import: SessionID ist: PHPSESSID=dec0d17ef3570f6941c0b88fe7676250
2022-05-24 11:14:48.584 10402-10402/com.andrealfredklug.klugstore E/Kundendaten Import: SessionID ist: PHPSESSID=dec0d17ef3570f6941c0b88fe7676250
2022-05-24 11:14:48.712 5073-5073/? E/pageboostd: Received HALT command code 2
2022-05-24 11:14:48.718 10402-10402/------- E/Import Json Werte:: 8551b100a86e privat@-----.com 2
2022-05-24 11:14:48.812 10402-10402/---- E/Import Json Werte:: 8551b100a86e privat@---.com 2
2022-05-24 11:14:51.984 971-10159/? E/TaskPersister: File error accessing recents directory (directory doesn't exist?).
2022-05-24 11:15:05.707 971-1055/? E/Watchdog: !@Sync: 6158 heap: 84 / 88 [2022-05-24 11:15:05.707] sdogWay: softdog FD: 966
2022-05-24 11:15:12.697 558-558/? E/android.hardware.health@2.1-service-samsung: Could not open /sys/class/power_supply/battery/lrp
2022-05-24 11:15:15.001 431-441/? E/vold: getUsedF2fsFileNode -> Cannot Get Used FileNode Number (errno=25 Inappropriate ioctl for device)
2022-05-24 11:15:16.887 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:15:16.889 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/multi_freq val:0
2022-05-24 11:15:16.889 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:15:16.890 419-429/? E/servicemanager: Could not find android.hardware.vibrator.IVibrator/default in the VINTF manifest.
2022-05-24 11:15:16.890 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/intensity val:4000
2022-05-24 11:15:16.890 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 5
2022-05-24 11:15:16.891 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:7
2022-05-24 11:15:16.892 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:15:16.900 612-612/? E/SecVibrator-HAL2.2_A: >> writeNode node:/timed_output/vibrator/enable val:0
2022-05-24 11:15:16.900 612-612/? E/SecVibrator-HAL2.2_A: << writeNode node OK 2
2022-05-24 11:15:16.958 536-20872/? E/TrafficController: FREECESS
2022-05-24 11:15:16.964 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:16.978 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.013 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.029 632-1237/? E/NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::acquire()
2022-05-24 11:15:17.055 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.063 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.099 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.423 6754-2075/? E/TaskStackListenerAbstract: onTaskSnapshotChanged called by Binder.getCallingPid() 0 android.app.ITaskStackListener$Stub.onTransact:585 android.os.Binder.execTransactInternal:1220 android.os.Binder.execTransact:1179 <bottom of call stack>
2022-05-24 11:15:17.423 7210-25634/? E/TaskStackListenerAbstract: onTaskSnapshotChanged called by Binder.getCallingPid() 0 android.app.ITaskStackListener$Stub.onTransact:585 android.os.Binder.execTransactInternal:1220 android.os.Binder.execTransact:1179 <bottom of call stack>
2022-05-24 11:15:17.423 4281-5456/? E/TaskStackListenerAbstract: onTaskSnapshotChanged called by Binder.getCallingPid() 0 android.app.ITaskStackListener$Stub.onTransact:585 android.os.Binder.execTransactInternal:1220 android.os.Binder.execTransact:1179 <bottom of call stack>
2022-05-24 11:15:17.424 4281-6413/? E/TaskStackListenerAbstract: onTaskSnapshotChanged called by Binder.getCallingPid() 0 android.app.ITaskStackListener$Stub.onTransact:585 android.os.Binder.execTransactInternal:1220 android.os.Binder.execTransact:1179 <bottom of call stack>
2022-05-24 11:15:17.529 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.548 10402-10402/------- E/onStop: Abmelden 2
2022-05-24 11:15:17.575 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.578 971-6746/? E/WindowManager: win=Window{cb93748 u0 ------/--------} destroySurfaces: appStopped=true win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=8 caller=com.android.server.wm.ActivityRecord.destroySurfaces:5842 com.android.server.wm.ActivityRecord.destroySurfaces:5823 com.android.server.wm.ActivityRecord.notifyAppStopped:5887 com.android.server.wm.ActivityRecord.activityStopped:6513 com.android.server.wm.ActivityClientController.activityStopped:253 android.app.IActivityClientController$Stub.onTransact:596 com.android.server.wm.ActivityClientController.onTransact:129
2022-05-24 11:15:17.592 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:17.600 4902-4902/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2022-05-24 11:15:18.546 971-10159/? E/TaskPersister: File error accessing recents directory (directory doesn't exist?).
```

und dannach mit onDestroy.

Und jetzt, wenn ich erneut drauf gehe:


```
2022-05-24 11:19:58.425 10729-10729/? E/USNET: USNET: appName: -----
2022-05-24 11:20:01.839 10729-10729/------- E/Kundendaten Import: SessionID ist: PHPSESSID=dec0d17ef3570f6941c0b88fe7676250
2022-05-24 11:20:01.879 10729-10729/------ E/Kundendaten Import: SessionID ist: PHPSESSID=dec0d17ef3570f6941c0b88fe7676250
2022-05-24 11:20:02.136 10729-10729/------ E/Kundendaten Import: VolleyError Response: com.android.volley.ParseError: org.json.JSONException: Value Du of type java.lang.String cannot be converted to JSONObject
2022-05-24 11:20:02.199 10729-10729/----- E/Kundendaten Import: VolleyError Response: com.android.volley.ParseError: org.json.JSONException: Value Du of type java.lang.String cannot be converted to JSONObject
2022-05-24 11:20:15.573 10729-10729/----- E/onStop: Profil konnte nicht geladen werden.
    Sie werden abgemeldet...
2022-05-24 11:20:15.592 10729-10729/------ E/Abmelden: Session wurde von SharedPreferences geladen.
2022-05-24 11:20:15.602 10729-10729/------ E/Abmelden: Session Datei wurde gelöscht.
2022-05-24 11:20:16.096 10729-10729/----- E/Abmelden: Response Code: Ausgeloggt.
```


Kp wiso die Volley Information immer 2x angezeigt bekomme. 
Beim normalen Login, klappt ja alles und es wird einfach die Webseite aufgerufen und den PHPSessID an den Header übergeben und dann wird die Session in Varablen geschrieben und wird als Json ausgegeben. Da ist es ja eigentlich egal, ob man sich frisch anmeldet, da eh es nicht zusammenhängt...


----------



## Jw456 (24. Mai 2022)

Der Server wird wohl auch Nach einem logg Aut eine neue Session Nummer erstellen. Die du wahrscheinlich nicht speicherst  und einfach die alte aus den Shprefs  wird wohl zum Fehler führen.


----------



## Jw456 (24. Mai 2022)

Poste doch mal deinen Response String


----------



## wer112 (24. Mai 2022)

Jw456 hat gesagt.:


> Der Server wird wohl auch Nach einem logg Aut eine neue Session Nummer erstellen. Die du wahrscheinlich nicht speicherst  und einfach die alte aus den Shprefs  wird wohl zum Fehler führen.


Beim Logout, wird es die Session ShaPref gelöscht und dann wird die Session in PHP komplett zerstört. Es wird ja keine neue erstellt.


----------



## Jw456 (24. Mai 2022)

Poste deinen Response String. Mache einen einfachen StringRequest und nicht einen Json Request.
Zeige uns was der Server schickt.

Wie in was soll der Response geparst  werde in welche Datenstuckatur (Datenklasse Model).

Ohne code ist Hilfe schwierig.


----------



## wer112 (24. Mai 2022)

Jw456 hat gesagt.:


> Poste doch mal deinen Response String


Das ist mein Log, wenn ich mich normal anmelde:

```
2022-05-24 18:36:05.039 21949-21949/? E/USNET: USNET: appName: ----
2022-05-24 18:36:21.495 21949-21949/----- E/Kundendaten Import: SessionID ist: PHPSESSID=085074ff65b8ddc4fbff0971b3df9bae
2022-05-24 18:36:21.530 21949-21949/---- E/Kundendaten Import: SessionID ist: PHPSESSID=085074ff65b8ddc4fbff0971b3df9bae
2022-05-24 18:36:21.660 21949-21949/----- E/Response:: {"KN":"8551b100a86e","email":"privat@---.com","eingeloggtBleiben":"2"}
2022-05-24 18:36:21.660 21949-21949/---- E/Import Json Werte:: 8551b100a86e privat@----.com 2
2022-05-24 18:36:21.801 21949-21949/---- E/Response:: {"KN":"8551b100a86e","email":"privat@----","eingeloggtBleiben":"2"}
2022-05-24 18:36:21.801 21949-21949/---- E/Import Json Werte:: 8551b100a86e privat@----.com 2
```

Keine Ahnung, wiso ich immer 2mal alles erhalte...


----------



## wer112 (24. Mai 2022)

Jw456 hat gesagt.:


> Poste deinen Response String. Mache einen einfachen StringRequest und nicht einen Json Request.
> Zeige uns was der Server schickt.
> 
> Wie in was soll der Response geparst  werde in welche Datenstuckatur (Datenklasse Model).


Natürlich von JSON zu String. Das finktioniert normaler weise sehr gut. Aber wenn ich die Login Seite überspringe, dann geht es direkt ins VolleyError. Werde es nun mal Auskommentieren und mir mal anzeigen lassen, was kommt, als Response, wenn ich das Login Überspringe...


----------



## Jw456 (24. Mai 2022)

Was wird denn auf deinen Server geloggt?

Wenn du in den Error Händler kommst welcher Http Fehlercode kommt den ?


----------



## Jw456 (24. Mai 2022)

Zeige mal wie du das machst mit deinem JsonRequest  mit Volley. Dann den kompletten Json Strring und wie die Model Klasse ausschaut.


----------



## Jw456 (25. Mai 2022)

wer112 hat gesagt.:


> Das ist mein Log, wenn ich mich normal anmelde:
> 
> ```
> 2022-05-24 18:36:05.039 21949-21949/? E/USNET: USNET: appName: ----
> ...


Wenn das das log von der login Anmeldung ist. Wo es nachdeiner Meinung nach geht. Wieso bekommst du da error Meldungen. Dürfte nicht sein also geht hier auch was nicht.
"E/Response"  "E"  Error Wenn die conektion ordentlich abläuft dürfte kein error kommen. 


Dann checke mal deinen Server php.


----------



## wer112 (25. Mai 2022)

Jw456 hat gesagt.:


> Wenn das das log von der login Anmeldung ist. Wo es nachdeiner Meinung nach geht. Wieso bekommst du da error Meldungen. Dürfte nicht sein also geht hier auch was nicht.
> "E/Response"  "E"  Error Wenn die conektion ordentlich abläuft dürfte kein error kommen.
> 
> 
> Dann checke mal deinen Server php.



Ich benutze für die Übersichtlichkeit am liebsten Log.e Version, da ich da schneller alles erkennen kann. Wenn ich jetzt Log.d mache, dann bekomme ich alles und finde mich langsamer zurecht. Ist nur eine Anzeige. Normalerweiße gibt es je nach Verwendung entsprechende Logs.(d,i,e>) macht aber beim Entwickeln kein großer unterschied. Da bei Log.d auch alles andere kommt, das wäre dann sehr unübersichtlich...


----------



## wer112 (25. Mai 2022)

Jw456 hat gesagt.:


> Poste deinen Response String. Mache einen einfachen StringRequest und nicht einen Json Request.
> Zeige uns was der Server schickt.
> 
> Wie in was soll der Response geparst  werde in welche Datenstuckatur (Datenklasse Model).
> ...


Erstmal Danke, für den Tipp. Ich habe den JSON Request ausgeklammert und habe ein normalen StringRequest gemacht.
Da habe ich Kein Error bekommen und dadurch das Problem erkannt.

Ich erhielt vom PHP Script die Antwort: Du bist ausgeloggt.

Habe es nun in Arrays gesteckt, was seltsam aussieht. Und es wieder ausgeklammert. Nun bekomme ich keine VolleyErros mehr, da die Antwort ein Array ist.

Ich verstehe nicht, wieso der Server sagt, das man ausgeloggt sei. Wenn ich aus der App rausgehe und ich angemeldet bleiben möchte, dann werde ich ja nicht abgemeldet. Und ich habe ausversehn jeden Nutzer automatisch ne 2 gegeben, damit die angemeldet sein wollen. 
Wenn ich rausgehe, erhalte ich den Code 2 und bei 2 wird nixs gemacht.

*Hier mein Lifecircel:*


```
@Override
    public void onBackPressed() {
        Log.i("BACK", "Das zurückgehen aus der Steuerung nicht möglch.");
    }


    @Override
    protected void onStop() {
        super.onStop();



        if(eingeloggt_bleiben == 0){
            Toast.makeText(getApplicationContext(), "Profil konnte nicht geladen werden.\nSie werden abgemeldet...", Toast.LENGTH_SHORT).show();
            Log.e("onStop", "Profil konnte nicht geladen werden.\nSie werden abgemeldet...");
            Abmelden();
        }else if(eingeloggt_bleiben == 1){
            Toast.makeText(getApplicationContext(), "Abmelden 1", Toast.LENGTH_SHORT).show();
            Log.e("onStop", "Abmelden 1");
            Abmelden();
        }else{
            Toast.makeText(getApplicationContext(), "Abmelden 2", Toast.LENGTH_SHORT).show();
            Log.e("onStop", "Abmelden 2");
        }

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();


        if(eingeloggt_bleiben == 0){
            Toast.makeText(getApplicationContext(), "Profil konnte nicht geladen werden.\nSie werden abgemeldet...", Toast.LENGTH_SHORT).show();
            Log.e("onDestroy", "Profil konnte nicht geladen werden.\nSie werden abgemeldet...");
            Abmelden();
        }else if(eingeloggt_bleiben == 1){
            Toast.makeText(getApplicationContext(), "Abmelden 1", Toast.LENGTH_SHORT).show();
            Log.e("onDestroy", "Abmelden 1");
            Abmelden();
        }else{
            Toast.makeText(getApplicationContext(), "Abmelden 2", Toast.LENGTH_SHORT).show();
            Log.e("onDestroy", "Abmelden 2");
        }

    }

    @Override
    protected void onResume() {
        super.onResume();
        NutzerDatenImport();
    }
```

Und ich bekomme ja den Toast und Log Abmelden 2, dass bedeutet, dass die Abmelde Methode nicht ausgeführt wird.

Und das meine Abmelde Methode. Ich hole zuerst den Session String raus und anschließend lösche ich die ShaPref, da wenn man kein Internet hat, trotzdem ausgeloggt wird. Aber Die Session ist ja trotzdem noch da?

*Hier die Methode:*



```
String sessionID = "";

    SharedPreferences pref = getSharedPreferences("Session", MODE_PRIVATE);
    sessionID = pref.getString("SessionID", sessionID);


        SharedPreferences sharedPreferences = getSharedPreferences("User", Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(getResources().getString(R.string.prefLoginState), "loggendout");
        editor.commit();

        Log.d("Abmelden" , "Session wurde von SharedPreferences geladen.");
        Log.e("Abmelden" , "Session wurde von SharedPreferences geladen.");

    String finalSessionID = sessionID;

    SharedPreferences.Editor deleteShaPref = getSharedPreferences("Session", MODE_PRIVATE).edit();
    deleteShaPref.clear();
    deleteShaPref.commit();

    Log.d("Abmelden", "Session Datei wurde gelöscht.");
    Log.e("Abmelden", "Session Datei wurde gelöscht.");


    final String aurl = "https://www.----.php";



    RequestQueue queue = Volley.newRequestQueue(----.this);






    StringRequest stringAbmeldeRequest = new StringRequest(Request.Method.POST, aurl, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            if(response.equals("Ausgeloggt.")){

                Log.d("Abmelden", "Response Code: " + response);
                Log.e("Abmelden", "Response Code: " + response);


            }else{
                Log.d("Abmelden", "Response Code: " + response);
                Log.e("Abmelden", "Response Code: " + response);

                AlertDialog.Builder builder = new AlertDialog.Builder(------.this, R.style.AlertDialogTheme);
                View view = LayoutInflater.from(----.this).inflate(R.layout.layout_error_dialog, (ConstraintLayout)findViewById(R.id.layoutDialogContainer));
                builder.setView(view);
                ((TextView)view.findViewById(R.id.textTitle)).setText("Abmelde Error");
                ((TextView)view.findViewById(R.id.textView_error)).setText("Die Abmeldung ist fehlgeschlagen.\nGrund: Keine oder falsche Rückmeldung vom Server.");
                ((Button)view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                ((ImageView)view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                final AlertDialog alertDialog = builder.create();

                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        startActivity(new Intent(---.this, login.class));
                        alertDialog.dismiss();

                    }
                });

                if (alertDialog.getWindow() != null){
                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                }



                alertDialog.show();


            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            Log.e("Abmelden VolleyError", "Response Code: " + error.toString());
            AlertDialog.Builder builder = new AlertDialog.Builder(fragment_steuerung.this, R.style.AlertDialogTheme);
            View view = LayoutInflater.from(fragment_steuerung.this).inflate(R.layout.layout_error_dialog, (ConstraintLayout)findViewById(R.id.layoutDialogContainer));
            builder.setView(view);
            ((TextView)view.findViewById(R.id.textTitle)).setText("VolleyError");
            ((TextView)view.findViewById(R.id.textView_error)).setText("ERROR: " + error.toString());
            ((Button)view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
            ((ImageView)view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

            final AlertDialog alertDialog = builder.create();

            view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    alertDialog.dismiss();

                }
            });

            if (alertDialog.getWindow() != null){
                alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
            }



            alertDialog.show();



        }
    }){


        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> header = new HashMap<>();

            header.put("Set-Cookie", finalSessionID);

            return header;
        }
    };

    queue.add(stringAbmeldeRequest);
```

Keine Ahnung, wiso gesagt wird, dass ich ausgeloggt sei. Bei der 2 wird ja nicht die Methode aufgerufen und die Session bleibt ja auch da in der ShaPref. Wenn ich mich normal auslogge, funktioniert es ja perfekt.


Das ist die Auslogg Script in PHP:


```
<?php
session_start();
session_destroy();

echo "Ausgeloggt.";

?>
```


----------



## Jw456 (8. Aug 2022)

Bedenke das die php session auch ein Time out hat. Default glaube ca 20 min. 

Danach ist deine Session id ungültig. 
Außer du hast auf deinen Server was anderes eingestellt. 

Wenn der user also eine halbe Stunde nicht online war beendet der Server normalerweise die Session.


----------



## wer112 (9. Aug 2022)

Jw456 hat gesagt.:


> Bedenke das die php session auch ein Time out hat. Default glaube ca 20 min.
> 
> Danach ist deine Session id ungültig.


Ansich hast du Recht, dass es begrentzt ich. glaube ca. 30 min.

Aber ich habe es mehrmals ausprobiert und war noch nach 3 Stunden eingeloggt, ohne was zu machen.

Wenn ich mich einlogge auf der Login Activity, wird auf der PHP Seite bei erfolgreicher Login eine Session Erstellt und dadrinnen Variablen gespeichert.
Danach gibt die Login PHP Seite ein Echo aus.

Während dessen empfängt die Activity das Echo und wenn der Login erfolgreich war wird es zur nächsten Activity weitergeleitet.
Davor wird die Session ID vom Header empfangen und in ShaPref gespeichert.

Auf der nächste Seite wird eine PHP Seite aufgerufen und die Session ID aus der ShaPref geholt und an den Header gehangen.
Das klappt super.

Wenn ich nomal aus der App rausgehe und übers Menü reingehe, bleibe ich eingeloggt, egal wie lange ich aus der App draußen war.

Problem ist, wenn ich mich eingeloggt habe und danach die App komplett schließe und wieder starte, dann bin ich ausgeloggt, obwohl die Session eigentlich noch gültig sein sollte nach 30 Sekunden. Nur wenn Destroy benutzt wird, bekomme ich eine Ausgeloggt Response.

Aber wenn ich die App nach Login komplett schließe und die App öffne und das Login überspringe, dann komme ich ja auf der Seite an, wo ich die Session an den Header hänge und die PHP Seite aufrufe. Aber dann zeigt es ausgeloggt an, Obwohl genau das auch beim Login gemacht wurden ist, nach dem ich weitergeleitet wurden bin. Es hat sih nixs geändert.

Wiso bin ich ausgeloggt bei Destroy, obwohl die SessionID nicht gelöscht wurden ist(ShaPref) und auch die Session auf der Webseite wurde nicht zerstört. Sonst bin ich immer eingeloggt....


----------



## Jw456 (9. Aug 2022)

Sieht so aus als ob beim Start der App was schief geht. In der onCreate onResume...

Ich denke es wird irgent wo noch ein request geschickt am anfang oder am ende.


----------



## wer112 (9. Aug 2022)

Jw456 hat gesagt.:


> Sieht so aus als ob beim Start der App was schief geht. In der onCreate onResume...
> 
> Ich denke es wird irgent wo noch ein request geschickt am anfang oder am ende.





```
String loginState = sharedPreferences.getString("Logged", "");

        if(loginState.equals("loggendin")){
            startActivity(new Intent(login.this, fragment_steuerung.class));
            finish();
        }
```

Wenn der Nutzer eingeloggt sein möchte, wird er ja zur steuerung weitergeleitet.

Da wird genau das gemacht, was es normalerweise auch gemacht wird, nähmlich den gespeicherten SESSION ID an den Header gehangen und die Daten ausgelesen.

Der einzigste Unterschied, ist die Weiterleitung. Irgendwie ist man bei Destroy immer ausgeloggt...

Auf welche Seite soll ich schauen?


----------



## Jw456 (9. Aug 2022)

if(loginState.equals("loggendin"))

Wiso loggendin? Wenn die Shprefs gelöscht ist ist doch loginState gleich "". Also der default Wert


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> if(loginState.equals("loggendin"))
> 
> Wiso loggendin? Wenn die Shprefs gelöscht ist ist doch loginState gleich "". Also der default Wert


Wenn der Nutzer eingeloggt sein möchte steht in der String Datei loggendin und wenn er nicht eingelloggt sein möchte dann out.
Dies ist nur für die Weiterleitung. 

In der ShaPref wird die Session ID gespeichert. Die wird nur gelöscht, wenn man sich abmeldet bzw.(früher) wenn man aus der App rausgeht und nicht angemeldet sein möchte.

Das hat nixs mit dem Problem zu tun. da ich ja angemeldet sein möchte, wird ja nixs gelöscht, weder in ShaPref noch in PHP.
Wenn loggendin ist, wird ja die Login Activity übersprungen und danach wird die Sission ID aus ShaPref geholt und an den Header gehanden und die Daten abgerufen. Aber da bin ich ausgeloggt, obwohl die Session gültig sein müsste nach 10 secunden.

Wenn ich aber im Login einlogge und in der Steuerund die Session ID aus ShaPref lade und an den Header hänge, da gehts, obwohl es bei beiden gleich ist....


```
<string name="prefLoginState">loginstatetrue</string>
```

Dies ist die Abmeldung von den ShaPref und logout...

```
private void Abmelden(){

    String sessionID = "";

    SharedPreferences pref = getSharedPreferences("Session", MODE_PRIVATE);
    sessionID = pref.getString("SessionID", sessionID);


        SharedPreferences sharedPreferences = getSharedPreferences("User", Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(getResources().getString(R.string.prefLoginState), "loggendout");
        editor.commit();

        Log.d("Abmelden" , "Session wurde von SharedPreferences geladen.");
        Log.e("Abmelden" , "Session wurde von SharedPreferences geladen.");

    String finalSessionID = sessionID;

    SharedPreferences.Editor deleteShaPref = getSharedPreferences("Session", MODE_PRIVATE).edit();
    deleteShaPref.clear();
    deleteShaPref.commit();

    Log.d("Abmelden", "Session Datei wurde gelöscht.");
    Log.e("Abmelden", "Session Datei wurde gelöscht.");


    final String abmelde_url = "https://....php";



    RequestQueue queue = Volley.newRequestQueue(.....this);
```


----------



## Jw456 (10. Aug 2022)

wer112 hat gesagt.:


> ```
> String loginState = sharedPreferences.getString("Logged", "");
> 
> if(loginState.equals("loggendin")){
> ...


Bist du hier sicher das du auf die richtige shpref Datei zugreifst?
Du benutzt ja zwei unterschiedliche  Dateien User und Session.

List du auch aus der richtigen, wenn nein bekommst du den default String "" dann ist klar das nicht zur zweiten  Activity weiter geleitet wird.

Worauf zeigt hier sharedPreferences?

(getResources().getString(R.string.prefLoginState) was ist der Inhalt? Ist das auch "Logged"

Denn genau nach diesen key fragst du ja beim App Start.
Benutze da besser einen Final String Konstante.


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> Bist du hier sicher das du auf die richtige shpref Datei zugreifst?
> Du benutzt ja zwei unterschiedliche  Dateien User und Session.
> 
> List du auch aus der richtigen  wenn nein bekommst du den default String "" dann ist klar das nicht zu zweiten  Activity weiter geleitet wird.
> ...


Die eine ist für eingeloggt bleiben und die andere ist nur für die Session. Ich komme ja weiter problemlos, wenn es loggendin ist, sonst muss ich ja mich anmelden.

OnDestroy ist das Problem. Ich komme auf die Steuerung und hole die Session ID aus ShaPref und hänge es an den Header und rufe die PHP Seite auf. Bekomme da ein JSON..

Die Session bleibt gültig nur bei Destroy nicht. Obwohl die Steuerung nixs anders macht, als wenn man sich eingeloggt hat.

Nachdem man sich eingeloggt hat, wird es gesetzt:


```
SharedPreferences sharedPreferences = getSharedPreferences("User", Context.MODE_PRIVATE);



                           if (eingeloggt_bleiben == 0){

                               Toast.makeText(getApplicationContext(), "Login & Nutzerdaten Fehler.", Toast.LENGTH_SHORT).show();

                           }else if (eingeloggt_bleiben == 1){

                               SharedPreferences.Editor editor = sharedPreferences.edit();
                               editor.putString("Logged", "loggendout");
                               editor.apply();

                           }else if (eingeloggt_bleiben == 2){

                               SharedPreferences.Editor editor = sharedPreferences.edit();
                               editor.putString("Logged", "loggendin");
                               //editor.putString(getResources().getString(R.string.prefLoginState), "loggendin");
                               editor.apply();

                           }
```

Der Swipe ist eingeschalten in den Einstellungen des Stores. Dort kann man es ein und ausschalten:


```
if (login_einstellung_angemeldet_bleiben.isChecked()){

                   Toast.makeText(getActivity(), "Ist An\nBitte voher Passwort abfrage mit Volley!!!", Toast.LENGTH_SHORT).show();

                   SharedPreferences.Editor editor = sharedPreferences.edit();
                   editor.putString("Logged", "loggendin");
                   //editor.putString(getResources().getString(R.string.prefLoginState), "loggendin");
                   editor.apply();

                   /*
                   SharedPreferences.Editor editor = sharedPreferences.edit();
                   editor.putString(getResources().getString(R.string.prefLoginState), "loggendin");
                   editor.commit();

                    */



               }else{
                   Toast.makeText(getActivity(), "Ist Aus\nBitte voher Passwort abfrage mit Volley!!!\"", Toast.LENGTH_SHORT).show();

                   SharedPreferences.Editor editor = sharedPreferences.edit();
                   editor.putString("Logged", "loggendout");
                   editor.apply();

                   /*
                   SharedPreferences.Editor editor = sharedPreferences.edit();
                   editor.putString(getResources().getString(R.string.prefLoginState), "loggendout");
                   editor.commit();

                    */
               }

           }
```

Und die Weiterleitung klappt ja. Auch des Entfernens des finish hat nixs geängdert..

Login Weiterleitung:


```
String loginState = sharedPreferences.getString("Logged", "");

        if(loginState.equals("loggendin")){
            startActivity(new Intent(login.this, .....class));


            }
```


In den Logcats wird die Session ID erfolgreich angezeigt... Also wird die nicht gelöscht, wenn man destroy macht. Und Destroy hat kein Zugriff auf die Abmelde PHP um die Session zu zerstören. 

Aber bei onPause bzw. Resume kann ich auf die App klicken und leibe eingeloggt. mache ich destroy, bin ich ausgeloggt, was kein Sinn macht.

Vielleicht killt Android die Datei von der Session aber die ID bleibt. Oder ist die Session ID die Datei oder die Adresse?


----------



## Jw456 (10. Aug 2022)

Du hast
name="prefLoginState">loginstatetrue</string>
Also sind die key nicht gleich. Und du bekommst beim start den default wert bein einlesen.  Denn du suchst nach dem key Logged.
Beim abmelden hast du
loginstatetrue als key benutzt.


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> Du hast
> name="prefLoginState">loginstatetrue</string>
> Also sind die key nicht gleich. Und du bekommst beim start den default wert bein einlesen.  Denn du suchst nach dem key Logged.


Wenn ich den Default Wert bekomme, also loginstatustrue, dann ist es nicht gleich und ich muss mich anmelden. Ist es gleich(loggendin) dann überspringt es die Loggin Seite und öffnet die Steuerung, die zuerst die Session ID rausholt um die Daten abzufragen. Das macht Sie auch beim Login..


Jw456 hat gesagt.:


> Beim abmelden hast du
> loginstatetrue als key benutzt.


Bei abmelden wird ja:

```
SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(getResources().getString(R.string.prefLoginState), "loggendout");
        editor.commit();
```
 gesetzt. Also steht dadrinnen loggendout. Dies habe ich auch per Device File Explorer gecheckt.


----------



## Jw456 (10. Aug 2022)

Mal eines zum verständnis der intent soll ausgeführt werden ja oder nein?


----------



## Jw456 (10. Aug 2022)

wer112 hat gesagt.:


> ```
> SharedPreferences.Editor editor = sharedPreferences.edit();
> editor.putString(getResources().getString(R.string.prefLoginState), "loggendout");
> editor.commit();
> ...


 Und prüft du auch genau den key beim app start?
Ich denke nein du prüft Logged

Benutze mal nicht apply sondern immer commit


----------



## Jw456 (10. Aug 2022)

wer112 hat gesagt.:


> Wenn ich den Default Wert bekomme, also loginstatustrue,


Das ist nicht der default wert das ist ein anderer Key.
Wenn unter dem Key Logged nichts ist bekommst du den zweiten Wert in deinen fall ""  leerer String

Shpref sind Key Value Paare
Logged  und loginstatustrue sind bei dir Keys.


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> Und prüft du auch genau den key beim app start?
> Ich denke nein du prüft Logged


Ich verstehe grade nixs mehr... Das weiterleiten geht ja, wenn man eingeloggt bleiben möchte. Und wenn nicht, dann eben nicht...


Jw456 hat gesagt.:


> Benutze mal nicht apply sondern immer commit


Habe es jetzt mal gemacht.


Jw456 hat gesagt.:


> Das ist nicht der default wert das ist ein anderer Key.
> Wenn unter dem Key Logged nichts ist bekommst du den zweiten Wert in deinen fall ""  leher String


leer bedeuted aber, dass es nicht equals "loggendin" ist und somit ist die Login Seite da...


Jw456 hat gesagt.:


> Shpref sind Key Value Paare
> Logged  und loginstatustrue sind bei dir Keys.



Habe in der Login Activity so gemacht:

```
String loginState = sharedPreferences.getString(getResources().getString(R.string.prefLoginState), "loggendout");

        if(loginState.equals("loggendin")){
            startActivity(new Intent(login.this, fragment_steuerung.class));


            }
```

Aber nach der Weiterleitung bin ich weiter ausgeloggt laut response.

Mein E. Log(was strafbar ist xD):


```
2022-08-10 10:27:38.406 12296-12296/? E/USNET: USNET: appName: com...
2022-08-10 10:27:41.894 12296-12296/com... E/InfoBackImport: StartHeader
2022-08-10 10:27:41.894 12296-12296/com... E/BackgroundService: Anfang Info Import Methode
2022-08-10 10:27:41.913 12296-12296/com... E/Kundendaten Import: SessionID ist:  PHPSESSID=707daa0e2fd8586ed58d7dff374d773d
2022-08-10 10:27:41.947 12296-12296/com... E/Kundendaten Import: SessionID ist:  PHPSESSID=707daa0e2fd8586ed58d7dff374d773d
2022-08-10 10:27:43.136 12296-12296/com... E/Response:: {"Logstatus":"Du bist ausgeloggt.","Session Daten":"Angemeldet Code: ,Kundennummer: ,Email: ,EingeloggtBleiben Code: "}
2022-08-10 10:27:43.137 12296-12296/com... E/JSON  Fehler:: org.json.JSONException: No value for KN
2022-08-10 10:27:43.138 12296-12296/com... E/Response:: {"Logstatus":"Du bist ausgeloggt.","Session Daten":"Angemeldet Code: ,Kundennummer: ,Email: ,EingeloggtBleiben Code: "}
2022-08-10 10:27:43.139 12296-12296/com... E/JSON  Fehler:: org.json.JSONException: No value for KN
2022-08-10 10:27:43.173 12296-12296/com... E/InfoBackImport: Logstatus 1: Session fehler.
```

Und Ohne Filter:


```
2022-08-10 10:30:12.100 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:12.805 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:12.899 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:13.224 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:14.220 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:14.261 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:14.332 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:15.646 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:15.733 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:16.424 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:16.444 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:17.101 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:17.125 531-1209/? E/TrafficController: FREECESS
2022-08-10 10:30:17.195 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:17.448 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:18.494 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:18.522 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:18.605 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:19.330 553-553/? E/android.hardware.health@2.1-service-samsung: Could not open /sys/class/power_supply/battery/lrp
2022-08-10 10:30:19.622 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:19.641 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:19.982 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:20.062 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:20.741 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:20.760 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:21.406 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:21.487 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:21.862 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:22.577 968-1025/? E/Watchdog: !@Sync: 21076 heap: 92 / 104 [2022-08-10 10:30:22.576] sdogWay: softdog FD: 1191
2022-08-10 10:30:22.864 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:22.902 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:22.956 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:24.287 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:24.382 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:25.060 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:25.081 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:25.740 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:25.750 427-4062/? E/vold: getUsedF2fsFileNode -> Cannot Get Used FileNode Number (errno=25 Inappropriate ioctl for device)
2022-08-10 10:30:25.832 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:26.179 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:26.198 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:29.699 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:34.818 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:35.504 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:35.588 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:35.940 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:36.944 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:36.981 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:37.048 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:38.425 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:38.517 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:39.143 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:41.704 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:41.717 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:42.381 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:42.473 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:42.817 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:43.808 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:43.843 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:43.909 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:45.261 542-1058/? E/power: ISystemSuspend::getService() failed.
2022-08-10 10:30:45.372 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:46.020 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:49.522 553-553/? E/android.hardware.health@2.1-service-samsung: Could not open /sys/class/power_supply/battery/lrp
2022-08-10 10:30:52.415 1351-1554/? E/CscParser: update(): xml file exist
2022-08-10 10:30:52.591 968-1025/? E/Watchdog: !@Sync: 21077 heap: 99 / 104 [2022-08-10 10:30:52.590] sdogWay: softdog FD: 1225
```


----------



## Jw456 (10. Aug 2022)

Du meldest dich ja auch zweimal ab.
In der onStop und onDestroy.
Es werden somit zwei request geschickt.


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> Du meldest dich ja auch zweimal ab.
> In der onStop und onDestroy.
> Es werden somit zwei request geschickt.


Ich melde mich nicht ab bei onStop und bei onDestroy.

Hatte früher dadrinnen eine If abfrage, um entweder angemeldet bleiben oder abmelden...

Aktuell habe ich kein Lifecircle für onStop oder onDestroy. Kein Plan wiso ich laut PHP ausgeloggt bin ohne das die Abmelde Methode aufgerufen wurden ist...


----------



## Jw456 (10. Aug 2022)

Also wie ist es wenn alles jungfräulich ist. App zu neu installiert.

Jetzt kommt der erste login du bekommst eine Session id speicherst die. Kommst zur zweite Seite.
Kein abmelden am Server. 

Jest beendest du die app löschts sie auch aus dem Speicher die app macht also ein onDestroy ohne das du es überschreiben hast. 

Was passiert  wenn du die app mit der noch gespeicherten Session id wider startest.  Also das login überspringst. Und gleich zur zweiten Seite gehst. 


Test nach kurzer Zeit und langer Zeit.


----------



## Jw456 (10. Aug 2022)

Bein kompletten beenden der app könnte sein das volley am server die Session beendet. Die gespeicherte id somit ungultig ist.


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> Bein kompletten beenden der app könnte sein das volley am server die Session beendet. Die gespeicherte id somit ungultig ist.


Dachte das macht Volley nicht, deswegen muss ich ja die Session anhängen.

Woher weiß Android wo es die Sessiom beendet wird?

Wie kann ich das Verhindern?


----------



## Jw456 (10. Aug 2022)

Erstmal soltest du heraus finden ob es auch so ist.


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> Erstmal soltest du heraus finden ob es auch so ist.


Wie kann ich das rausfinden?


----------



## Jw456 (10. Aug 2022)

teste doch erstmal das was ich in #31 sagte.


----------



## Jw456 (10. Aug 2022)

Ich würde vielleicht doch auf eine Cookie Verwaltung setzen und nicht selber Manuel machen.









						Answers to Using cookies with Android volley library Code-teacher
					

Answers to Using cookies with Android volley library  - has been solverd by 3 video and 5 Answers at Code-teacher.>




					www.thecodeteacher.com


----------



## wer112 (10. Aug 2022)

Jw456 hat gesagt.:


> Ich würde vielleicht doch auf eine Cookie Verwaltung setzen und nicht selber Manuel machen.
> 
> 
> 
> ...


Da war ich schon mal drauf, deswegen habe ich im Login ein CookieManager. 

Leider gingen auf der Webseite dieser Code nicht:

```
DefaultHttpClient httpclient = new DefaultHttpClient();
```

Ich habe bei mir auf der Login Seite diesen Code für Cookie:

```
CookieManager cookieManager = new CookieManager();
             CookieHandler.setDefault(cookieManager);
```

Der ist mit nixs verbunden, den habe ich aber drinnen.

Damals als ich mit Volley anfing, abe ich ein Youtube Video nach programmiert und diesen Code, für Login/registrierung und Passwort vergessen genommen. Sowas mache ich nicht mehr. Außerdem wurde da ein Adapter genommen.

Der Code bis Heute, was ich nicht mehr tue:


```
request.setRetryPolicy(new DefaultRetryPolicy(30000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        MySingleRegister.getmInstance(login.this).addToRequestQueue(request);
```

Die 3000 ist ja der Timeout. Wenn  ich auf 0 stelle, kann ich mich erst garbiicht mehr einloggen. ICh verstehe diese ganzen Code garnicht, habe damals nur übernommen.

Habe es jetzt auf mein Standart gestellt: 


```
queue.add(request);
```

Und am Anfang:


```
RequestQueue  queue = Volley.newRequestQueue(login.this);
```

Nachdem ich es umgestellt hatte, hat es kein Unterschied gemacht.

*Als ich den Cookie Text sah, habe ich es ausgeklammert, danach konnte ich mich normal anmelden, aber ich habe die Daten nicht bekommen.
Und ich bekam sofort die Ausgeloggt Mitteilung.
Also es liegt am Cookie Manager(Vermutlich). Aber in der Steuerung gibt es kein Cookie Manager.
Wenn ich den dort hinzufüge bin ich wieder ausgeloggt oder ich werde nicht weitergeleitet.*

Kein Plan, wiso ich in der Steuerung kein Cookie Manager brauche und das es ausrecht, wenn man das da dran hängt.
*
Was soll ich tun, damit der Cookie Manager auch geht, wenn die App onDestroy oder onStop macht??*


----------

