Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
497 of 502 menu
◀ ▶

Класс BadTokenException

Класс BadTokenException наследует RuntimeException. Возникает, если Dialog, Toast или popup пытаются прикрепиться к activity, которая уже закрыта или ещё не готова. Частая ошибка - диалог после finish или из application context.

Пример

Давайте закроем activity и не показывать диалог после:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { finish() }) { Text("abcde") } } } }

После finish window token activity недействителен. Показ AlertDialog в этот момент бросит BadTokenException.

Смотрите также

  • метод finish,
    после которого token пропадает
  • метод onDestroy,
    когда окно уже снимают
  • класс SecurityException,
    другая ошибка при показе UI
  • класс Activity,
    которая владеет window token
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить