Flutter-initState()中的复杂函数会降低导航和性能

时间:2018-09-28 14:02:22

标签: android performance dart flutter background-process

我正在使用此应用程序,您可以在其中导航到带有状态小部件的屏幕,该小部件具有在initState()中运行的大量复杂功能。

由于这些功能,导航功能被触发后,导航到该屏幕大约需要两秒钟,即非常慢

我的代码如下

@override
void initState(){
  someComplexHeavyFunctions();      

  super.initState();
}   

在运行initState()中的功能之前,是否有任何方法可以确保导航已完成(快速而流畅地),并且还可能在屏幕导航至之后仍在处理功能的情况下显示加载程序?

像这样:

enter image description here

2 个答案:

答案 0 :(得分:3)

您可以使用compute函数在不同线程上运行的不同隔离中进行计算。

答案 1 :(得分:1)

您可以调用初始化函数,并在等待初始化函数时显示对话框。

这是一个完整的示例:

public ActionResult ProjectPDFExport(string vmOneSheet)
{
   var result = JsonConvert.DeserializeObject<IEnumerable<ProjectExportVM>>(vmOneSheet);  
   //You will get the result as IEnumerable of ProjectExportVM  
}