OnStart和App Constructor有什么区别

Yoe*_*eri 8 c# portable-class-library xamarin xamarin.forms

Xamarin Forms具有以下App类:

public class App : Application
{
        public App()
        {
            // The root page of your application
            MainPage = new ContentPage
            {
                Content = new StackLayout
                {
                    VerticalOptions = LayoutOptions.Center,
                    Children = {
                        new Label {
                            XAlign = TextAlignment.Center,
                            Text = "Welcome to Xamarin Forms!"
                        }
                    }
                }
            };
        }

        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
}
Run Code Online (Sandbox Code Playgroud)

问题:构造函数中运行的代码与OnStart方法中编写的代码之间有什么区别.应用程序启动时是不是都运行了?

有关详细信息,请参阅http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/app-lifecycle/.

Jor*_*rke 3

它们完全不同,但文档并不稀疏。

构造函数与平台无关,其目的是创建对象(如果这听起来像“教你吸鸡蛋”,我很抱歉)。

然而,OnStart() 方法映射到平台特定的通知及其相关含义。这是每个不同操作系统启动通知系统的跨平台实现 - 这当然在平台之间会有所不同,但这种抽象允许您以相同的方式处理它。

  • 我的两分钱 - 我有点惊讶地发现 App 构造函数也在 Resume 上被调用,这破坏了我的引导过程,因为我假设从应用程序创建到死亡(例如,当 Android 或 iOS 杀死时)始终只有一个 App 实例睡眠期间的应用程序)。 (3认同)