Xamarin.Form是一个平台, 用于通过将XAML用于前端并将C#用于应用程序后端来开发跨平台移动应用程序。在Xamarin.Form应用程序中, 我们可以共享所有代码。 Xamarin.Forms还提供了Android和iOS本机API的100%API覆盖率。因此, 我们可以开发本机Android, iOS和Windows应用程序。
Xamarin.Forms应用程序的生命周期:
创建Xamarin.Forms应用程序时, 我们将看到四个项目:
- 可移植项目:这是我们将对95%的应用程序代码进行编码的项目, 并且该代码在所有三个平台中共享。
- Android:这是我们设置Android应用程序图标和启动屏幕的项目, 所有其他代码都来自可移植项目。
- iOS:在此项目中, 我们设置了iOS应用程序体系结构和图标。
- 通用Windows:通用Windows平台是用于构建Windows Mobile和Windows桌面应用程序的应用程序平台。
我们可以在此屏幕快照中看到所有四个项目:
Xamarin.Forms应用程序生命周期包含三个虚拟方法, 这些方法被覆盖以处理生命周期方法。这些方法存在于App中。 Xaml。可移植项目中的CS类。
我们在这里找到所有这些文件, 如屏幕截图所示:
三种方法是:
- OnStart()
- OnSleep()
- OnResume()
当应用程序处于启动, 睡眠或恢复状态时, 将调用这三种方法。没有终止应用程序的方法。应用程序从OnSleep()方法终止, 没有任何其他通知。
我们可以在Xamarin.Forms(便携式项目)的App.Xaml.cs中看到所有这些文件。
OnStart()方法
当应用程序首次启动时, OnStart()方法将调用。当应用程序启动时, 它将读取用OnStart()方法编写的所有代码。
OnStart()方法的语法可以编写如下:
protected override void OnStart()
{
// Handle when your app starts
}
OnSleep()方法
当应用程序处于睡眠模式时, 即当应用程序中没有任何工作时, OnSleep()方法将调用。当用户隐藏应用程序时, 将调用Sleep方法。以这种形式, 我们的应用程序在睡眠状态下在后台打开。
OnSleep()方法的语法可以编写如下:
protected override void OnSleep()
{
// Handle when your AApp sleeps
}
OnResume()方法
当我们从睡眠模式返回到应用程序时, 将调用OnResume()方法。
OnResume()方法的语法可以编写如下:
protected override void OnResume()
{
// Handle when your AApp resumes
}
让我们在所有这些方法上设置断点, 当应用程序处于这些状态之一时, 我们将看到所有这些方法被调用。
protected override void OnStart()
{
// Handle when your app starts
Debug.WriteLine("OnStart");
}
protected override void OnSleep()
{
// Handle when your app sleeps
Debug.WriteLine("OnSleep");
}
protected override void OnResume()
{
// Handle when your app resumes
Debug.WriteLine("OnResume");
}