Flutter: System UI 'Location Permissions' 对话框中断了代码执行的连续性?

Flutter: System UI 'Location Permissions' dialog breaks the continuity of the execution of the code?

我有一个使用包 location 的项目。 一切正常,只是一个小问题:当应用程序 运行 第一次询问位置权限(使用对话框)并且用户接受时,flutter 上的代码不会继续执行。

代码如下:

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) async {
      try {
        await Provider.of<TurnActiveProvider>(context, listen: false)
            .connectSocket();
      } catch (error) {
        Provider.of<ErrorProvider>(context, listen: false)
            .showError(context, error, _scaffold);
      }
      setState(() {
        _isLoadingSocket = false;
      });
    });
  }

此提供商行:

await Provider.of<TurnActiveProvider>(context, listen: false)
            .connectSocket();

调用并激活 socketio 客户端并获取用户坐标。系统显示请求权限的对话框,用户点击允许,最终代码:

      setState(() {
        _isLoadingSocket = false;
      });

不会从不执行,因此屏幕会永远显示 CircularProgressIndicator(因为 _isLoadingSocket 标志永远不会更改)。如果我重新启动我的应用程序,工作没有任何问题。有什么帮助吗?

问题依然存在。但是,我找到了一个解决方案,并在任何其他事情之前请求权限。