#android #flutter #flutter-state
#Android #flutter #состояние флаттера
Вопрос:
Я хочу вывести страницу музыкального проигрывателя, когда аудиопоток остановлен. Но я получаю сообщение об ошибке типа
Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe
Это мой код, который я поместил внутри метода сборки перед возвратом scaffold.
AudioService.playbackStateStream.listen((event) {
if (event?.processingState == AudioProcessingState.stopped) {
try {
final modal = ModalRoute.of(context);
if (modal.isCurrent) {
Navigator.of(context).pop();
}
} catch (e) {
print("exception error in player adv $e");
}
}
});
Ответ №1:
Попробуйте переместить это в initState()
возможно, что каждый раз, когда виджет перестраивается, добавляется слушатель, поэтому в итоге у вас будет несколько слушателей, и при срабатывании они будут вызываться pop
несколько раз
Комментарии:
1. После переключения слушателя на initState() я получаю
NoSuchMethodError: The method 'dependOnInheritedWidgetOfExactType was called on null error occured.
2. Попробуйте остановить сборку и создать заново. Если это не помогает, ошибки обычно имеют ссылки на строку кода, вызывающую это, может дать лучшую подсказку