OnStart 和 App Constructor 有啥区别[重复]
Posted
技术标签:
【中文标题】OnStart 和 App Constructor 有啥区别[重复]【英文标题】:What is the difference between OnStart and the App Constructor [duplicate]OnStart 和 App Constructor 有什么区别[重复] 【发布时间】:2015-05-13 08:27:36 【问题描述】: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
问题: 在构造函数中运行的代码和在 OnStart 方法中编写的代码有什么区别。当您的应用程序启动时不是都运行吗?
请参阅http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/app-lifecycle/ 了解更多信息。
【问题讨论】:
构造函数应该快速且不包含业务逻辑(但这是一种观点,所以我没有将其作为答案发布,也可能有技术原因,所以我不会投票结束作为“问题是基于意见的”)。 这正是我的观点。是否存在技术差异,或者只是从构造函数调用方法的语法糖? 【参考方案1】:它们完全不同,但文档并不稀少。
构造函数与平台无关,并且用于创建对象(如果这听起来像“教你吸蛋”,请道歉)。
然而,OnStart() 方法映射到特定于平台的通知及其相关含义。这是每个不同操作系统启动通知系统的跨平台实现 - 这在平台之间当然会有所不同,但这种抽象允许您以相同的方式处理它。
【讨论】:
嘿,谢谢您的回答,这听起来合乎逻辑。但是,您能想到具体的区别吗?据我所知..两者都将在同一时间执行。 我的两分钱 - 我有点惊讶地发现 App 构造函数也在 Resume 上被调用,这打破了我的引导过程,因为我假设从应用程序创建到永远只有一个 App 实例死亡(例如,当 android 或 ios 在睡眠期间终止应用程序时)。以上是关于OnStart 和 App Constructor 有啥区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章
uni-app运行到手机报错 Component constructors should be called while initialization. A constructor call has
如果在 Activity 更改时调用 onCreate 和 onStart 两者之间的区别在哪里?目的是啥?
Fragment.onstart 在 Activity.onstart 之前被调用