App.xaml.cs是否必须要准备就绪才能使用?

时间:2019-01-26 03:23:09

标签: xamarin xamarin.forms

我正在处理的应用程序已将此代码编码在app.xaml.cs

    protected override async void OnStart()
    {
        await Task.Run(() =>
        {
            cardSetWithWordCount = DB.GetCardSetWithWordCount(Settings.cc.Text());
            PointChecker.CheckPoints();
            StartTimer();
        });
    }

我想提出建议的是,是否有任何理由在这样的Task中的OnStart中运行代码。还是OnStart事件还是应用程序启动的某个部分需要在应用程序可用之前完成?

1 个答案:

答案 0 :(得分:1)

Well OnStart是Xamarin.Forms App生命周期中的一种方法。并且在您的Xamarin.Forms执行开始后立即被调用。

XF文档说:

  

应用程序开发人员重写此方法以在应用程序启动时执行操作。

关于您问的另一个问题:

  

OnStart事件或应用程序启动的某个部分需要在应用程序可用之前完成

它是Xamarin.Forms应用生命周期的一部分,

XF文档说:

  

Application类包含三个可以重写以处理生命周期方法的虚拟方法:

     

OnStart-在应用程序启动时调用。

     

OnSleep-每次应用程序进入后台时调用。

     

OnResume-在将应用程序发送到后台后,在恢复应用程序时调用。

     

请注意,没有终止应用程序的方法。在正常情况下(即不是崩溃),应用程序将在OnSleep状态下终止,而无需任何其他代码通知。

使用Task.Run的原因很简单,Task.Run中的所有代码行都无法等待,这意味着它们都没有等待,因此,根据定义,任务就是这个原因,因此用过的。了解任务的工作原理here

祝你好运

在查询的情况下还原