在Flutter中, 我正在调用提供程序函数以从main.dart中的数据库加载数据,并且看到main.dart正在连续调用它们,因此在启动之后,我添加了bool来检查它们是否已调用或是否正在加载以停止连续调用关心我这样可以吗有什么更好的方法?我不想将其添加到initstate的第一页,就好像用户在SharedPreferences中有详细信息一样,我等待发送令牌以获取其他数据。
请告诉我您的意见。
答案 0 :(得分:1)
寻找实现目标的最佳方法是...
不建议在主要功能中执行异步任务。因此,您需要使Material应用程序执行任务。
答案 1 :(得分:1)
我会有一个@Akash提及的初始屏幕,但是在初始化提供程序时会调用这些方法。例如,假设您在应用顶部创建了这样的提供商:
runApp(MultiProvider(providers: [
Provider<DatabaseService>(
create: (_) => YourService(),
lazy: false,
),
],
child: MyApp()));
您在问题中的初始化逻辑将存在于YourService
的构造函数中。
现在您可以拥有userDetails
的流,您的启动屏幕将收听此流,一旦它发出详细信息,请转到相应的屏幕。