Вопрос

Во время запуска инструмента Monkey в моем приложении я получаю Android.View.WindowLeaked Исключение, я направил несколько потоков StackOverflow и обнаружил, что нам нужно избегать это При создании всплывающих часов нам нужно использовать GetApplicationContext (), но это вызывает Badtokenexception

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

Снова после поиска я нашел этот ответ, который говорит

Одной из причин этой ошибки может быть попытка отобразить окно/диалог приложения через контекст, который не является действием

Так как это решить?

Это было полезно?

Решение

Обычно утечки в окнах, потому что вы не используете Showdialog Метод в Activity но только использование Dialog.show() метод

Когда отображается диалог и конфигурация вашего Activity В диалоговом окне «Изменения» (например, изменение ориентации) нет окна для прикрепления, и это приводит к утечке окна.

Если вы используете Библиотека совместимости Вы должны использовать Диалогфрагмент вместо чистого dialog.

Другие советы

причина WindowManager$BadTokenException это то, что вы продолжаете показывать dialog или же popupwindow В окне, чей контекст сейчас не жив.

Таким образом, всегда следует отклонять всплывающее окно или диалог, когда вы переключаетесь между действиями или отклоняют любую деятельность.

Поэтому вам, вероятно, следует назвать Dilog.dismiss () в методе.

onPause()
{
dilog.dismiss()
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top