Flutter

flutter黑屏,从后台切换到前台经常黑屏

2022-04-11  本文已影响0人  晓函

flutter黑屏,从后台切换到前台经常黑屏,并且黑屏之后必须要重新切换一下前台后台才正常显示,这个我问题出现的频率很高。
之前按照百度的方法改启动页,没任何用。

后来想起我监听了app切换到前台的事件

initState(){
WidgetsBinding.instance?.addObserver(this);
}

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);
    switch (state) {
      case AppLifecycleState.inactive: // 处于这种状态的应用程序应该假设它们可能在任何时候暂停。
      //关闭弹窗
        if(isShowBox) Navigator.pop(context);
        break;
      case AppLifecycleState.resumed: //从后台切换前台,界面可见
        parseWork();//临时注释,测试能否解决黑屏bug
        break;
      case AppLifecycleState.paused: // 界面不可见,后台
        break;
      case AppLifecycleState.detached: // APP结束时调用
        break;
    }
  }

里面有个parseWork的工作,还挺耗时的,是一个async的异步函数。
于是注释掉,果然正常了。
因为异步函数也是在ui线程中执行,我们需要在子线程中执行,用compute

await compute(parseWork,1);

这样就没问题了,黑屏问题解决了。

上一篇 下一篇

猜你喜欢

热点阅读