Я использую WidgetsBindingObserver для проверки яркости платформы, она хорошо работает, когда приложение запущено и работает. Приложение может определять изменения яркости платформы пользователем. Однако, когда приложение закрывается и снова открывается. При первом запуске метод didChangePlatformBrightness () вообще не запускался для Android, но для IOS он был выполнен. Почему это так?
Ниже приведен мой код:
class _MyAppState extends State<MyApp> with WidgetsBindingObserver{
ScaffoldDataBloc bloc;
ScaffoldDataState state;
var systemBrightness;
@override
void initState() {
WidgetsBinding.instance.addObserver(this);
bloc = ScaffoldDataBloc();
}
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
}
@override
void didChangePlatformBrightness() {
super.didChangePlatformBrightness();
final Brightness brightness = WidgetsBinding.instance.window.platformBrightness;
//inform listeners and rebuild widget tree
systemBrightness = brightness;
print('didchange: ' + systemBrightness.toString());
setState(() {});
}
....
При Android оператор печати «didchange» не был распечатан. Для IOS это результат:
флаттер: didchange: Brightness.dark
Это ошибка?
Спасибо.