Wenn ein Dialog für eine Aktivität auf "visible" gesetzt ist, aber bei einer Änderung der Ausrichtung die Aktivität selbst zerstört wird, führt dies zu einem ausgelaufenen Fensterfehler.
Es gibt zwei Methoden, um diese Situation zu behandeln: -
Methode 1
Daher müssen Sie onStop
oder onDestroy
Methode der zu dismiss
Dialog in Aktivität. Zum Beispiel:
@Override
protected void onStop() {
super.onStop();
if(pd!= null)
pd.dismiss();
}
und definieren Dialog in Aktivitätsklasse
ProgressDialog pd;
Dieser Link wird Ihnen helfen, Handling progress dialogs and orientation changes
Methode 2
Sie haben dies in der auf die Aktivität Erklärung hinzufügen Manifest:
android:configChanges="orientation"
so sieht es aus wie
<activity android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:name="com.eisuru.abc.MainActivity">
Die Sache ist, dass das System die Aktivität zerstört, wenn eine Änderung in der Konfiguration auftritt. Siehe ConfigurationChanges.
Wenn Sie das in die Konfigurationsdatei eingeben, wird das System Ihre Aktivitäten nicht zerstören. Stattdessen ruft es die Methode onConfigurationChanged(Configuration)
auf.
Vielen Dank für Ihren nützlichen Kommentar. Ich habe die zweite Methode gemacht. Es hat sehr gut funktioniert. 'android: screenOrientation =" Landschaft "' 'android: configChanges =" Tastatur | keyboardHidden | Ausrichtung | screenLayout | uiMode | screenSize | littleScreenSize ">' – Isuru
@Isuru Glücklich zu helfen, Kodierung genießen. –
Methode 1 funktionierte perfekt für mich. Interessante Randnotiz: Ich hatte bereits die Ausrichtung in den ConfigChanges in meinem Manifest deklariert, als ich das Fensterleck ursprünglich bekommen habe. – LargeGlasses