Я использую SystemChannels.lifecycle для отслеживания возобновления работы моего приложения.
Мой код работал нормально, когда я нахожусь в режиме отладки. Но когда я переключился в режим выпуска, приложение просто загрузилось на белый экран и зависло.
Оскорбительный код выглядит следующим образом ...
SystemChannels.lifecycle.setMessageHandler((String msg) async {
return "";
});
Если я раскомментирую этот код, мой приложение работает нормально в выпуске. Если я добавлю его обратно, приложение не будет работать, а загрузится только на белый экран, а пользовательский интерфейс не загрузится.
Для большей информации, вот код в моем main.dart ...
void main() {
TimeServer.instance.update();
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>();
runZonedGuarded(() {
runApp(MyApp(navigatorKey));
},
Log.onError
);
SystemChannels.lifecycle.setMessageHandler((String msg) async {
return "";
});
}
class MyApp extends StatelessWidget {
final GlobalKey<NavigatorState> navigatorKey;
MyApp(this.navigatorKey);
@override
Widget build(BuildContext context) {
return OverlaySupport(
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
navigatorKey: navigatorKey,
onGenerateRoute: NavBoss.generateRoutes
),
);
}
}
Когда я запускаю приложение в режиме отладки, оно отлично работает везде. Когда я запускаю приложение на своем Moto g5, оно дает сбой в 100% случаев. Когда я запускаю приложение на своем эмуляторе Nexus 6p android 28, оно дает случайный сбой примерно в 25% случаев.