Класс 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