flutter - 有没有办法同步获取文档目录?
问题描述
在显示第一个屏幕之前,我需要加载一个小的设置文件。
我目前正在使用 PathProvider 插件,但其中的所有功能都是异步的。
有什么方法可以同步找到应用文档目录,然后在上面使用 dart:io 同步功能?而不是显示一秒的无限小数的占位符。
编辑:考虑到前 2 个答案,我的解释可能真的很糟糕。答案建议我仍然使用async
代码。问题是,我需要之前的目录runApp()
,我不希望我void main()
成为async
,因为这肯定会破坏任何启动动画。
并且 PathProvider API 是async
,据我所见,只是因为它利用了MethodChannel
,即async
,但 PathProvider 中它背后的函数几乎是同步的。
我要问的是 - 在 Android 或 IOS 上,有没有办法在同步代码中了解 ApplicationDocumentsDirectory?也许根本不使用特定于平台的代码?
解决方案
您可以将FutureBuilder
其用于相同的目的,而不必担心执行。
它将允许您在后台执行您的流程,并允许您显示启动屏幕 UI,直到您的指定流程完成并且数据可以使用。
注意:任何需要访问设备本机方法通道的插件或代码将async
默认为,因为方法通道本身的访问应该是async
.
推荐阅读
- excel - worksheet.saveas 如何在 Visual Studio 中工作?
- javascript - :active 完成后如何捕获 onclick 事件
- java - 如何解决 org.springframework.jms.config.JMSListenerEndpointRegister.isAutoStartUp()Z 错误?
- python - Django 2.2.5,具有 Django 内置身份验证系统的多种用户类型
- linux - bash 文件名完成挂起,因为它正在不相关的目录中搜索不相关的文件
- java - 从 gitlab 将项目导入 jBpm Business Central 时出错
- javascript - 如何在 Three.js 中绑定 Mixamo 角色的动画?
- sql - 将两个查询组合成一个临时表,没有相似的列
- python - 为什么 matplotlib 停止在 Fedora 上工作?
- arrays - 如何在bash中删除数组的最后一个元素?