Здравствуйте! Не могу разобраться с такой проблемой: у меня есть интерактивная игра викторина и при не правильном ответе предлагается использовать дополнительную жизнь, для этого я использую alert dialog как popup, все бы ничего, но через раз происходит краш приложения с ошибкой:
Fatal Exception: android.view.WindowManager$BadTokenException
Unable to add window -- token android.os.BinderProxy@b420b9e is not valid; is your activity running?
Прочитал много вопросов пользователей и ответы к ним, одним из решений было проверять активность и если не находит не показывать popup, но мне оно не подходит т.к. этот popup мне показать нужно обязательно.
get_chance = new Dialog(this);
public void get_chance() {
if(user_data.lives != 0) {
get_chance.setContentView(R.layout.popup_get_chance);
Button use_live = get_chance.findViewById(R.id.use_live);
timer_close_popup = new CountDownTimer(6000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
get_chance.dismiss();
lose();
}}.start();
use_live.setOnClickListener(view -> {
timer_close_popup.cancel();
use_live();
get_chance.dismiss();
});
Button cancel = get_chance.findViewById(R.id.cancel3);
cancel.setOnClickListener(view -> {
timer_close_popup.cancel();
lose();
get_chance.dismiss();
});
get_chance.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT);
get_chance.show();
} else {
lose();
}
}
Хочу отметить, что краши не зависят от модели устройства, они происходили абсолютно рандомно (брал из статистики firebase crashlytics).