Frage

Während ich in meiner App Monkey -Tool ausführe, bekomme ich android.view.windowleaked Ausnahme, ich habe einige Stackoverflow -Threads verwiesen und festgestellt, dass wir vermeiden müssen Dies Beim Erstellen von Popups müssen wir stattdessen GetApplicationContext () verwenden, aber das verursacht dies BadTokenException

E/AndroidRuntime(5597): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

Nochmals nach dem Durchsuchen fand ich diese Antwort, die sagt

Eine Ursache für diesen Fehler kann darin bestehen, ein Anwendungsfenster/Dialog über einen Kontext anzuzeigen, der keine Aktivität ist

Wie kann ich das lösen?

War es hilfreich?

Lösung

Normalerweise Fensterlecks, weil Sie nicht verwenden Showdialog Methode in Activity aber nur benutze Dialog.show() Methode.

Wenn ein Dialog angezeigt wird und Ihre Konfiguration Ihrer Activity Änderungen (z. B. Änderung der Orientierungsänderung) Das Dialogfeld "Angefügt ist nicht zum Anbringen des Fensters.

Wenn du benutzt Kompatibilitätsbibliothek Du solltest benutzen Dialogfragment statt rein dialog.

Andere Tipps

der Grund dahinter WindowManager$BadTokenException ist, dass Sie immer wieder zeigen dialog oder popupwindow Auf dem Fenster, dessen Kontext jetzt nicht lebt.

Sollte das Popup oder Dialog immer dann abweisen, wenn Sie zwischen Aktivitäten wechseln oder Aktivitäten abweisen.

Daher sollten Sie wahrscheinlich Dilog.dismiss () in der OnPause -Methode aufrufen.

onPause()
{
dilog.dismiss()
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top