- показываю прогресс диалог в активити, но иногда приходит эксепшен типа Fatal Exception: android.view.WindowManager$BadTokenException
В диалог активити передаю по weak reference.
Перед показом я делаю такую проверку
if (!dialog.isShowing && !wActivity.isFinishing && !wActivity.isDestroyed)
Получается что активити жива, но все равно крашится. Я думаю уже завернуть в try chach, но хочу понять почему так происходит?
1. Не стоит в диалог передавать активити без надобности (если очень нужно - есть методы для этого, такие как requireActivity) 2. Диалог должен быть тупой вьюшкой (фрагментом), умеющим делать одну задачу - например показывать прогресс или возвращать введенные данные 3. Активити также должна быть тупой вьюшкой, умеющей отрисовывать себя и показывать/скрывать диалог (например скрывать диалог после вызова onStop, finish)
https://stackoverflow.com/questions/7811993/error-binderproxy45d459c0-is-not-valid-is-your-activity-running Т.е. тут пишут неправильно?
Обсуждают сегодня