这篇文章主要介绍了在.NET MAUI应用中怎么配置应用生命周期事件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
通常,应用具有不同的生命周期或状态。.NET MAUI 应用具有以下四个生命周期(执行状态):
运行 (Running)
未运行 (Not running)
关闭 (Deactivated)
停止 (Stopped)
当窗口移动到每个状态时,将触发不同的事件。
以下是跨平台应用中提供的一些预定义生命周期事件:
Created: 应用从未运行状态移动到正在运行状态时发生。通常,当我们启动新窗口时。
Activated: 当窗口从未聚焦状态移动到聚焦状态(未聚焦 = 位于另一个窗口后面)时发生。
Deactivated: 当窗口移动到未聚焦状态时发生。
Stopped: 在窗口变为隐藏时发生。例如,当我们将其最小化时。这样,窗口就有可能被破坏。
Resumed: 已停止事件的后续事件,但与创建的事件不同。
Destroying: 在窗口被销毁和解除分配时发生。
下面是映射图,其中说明了 .NET MAUI 框架将如何映射本机事件。
使用 .NET MAUI Preview 13,您可以使用 MauiAppBuilder 和 ConfigureLifecycleEvents 扩展方法轻松地在 MauiProgram 类中配置生命周期事件。此方法在 Microsoft.Maui.LifecycleEvents 命名空间中可用。
有关常见配置,请参阅以下代码示例。
using Microsoft.Maui.LifecycleEvents; namespace MauiApp1; public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }).ConfigureLifecycleEvents(app => { //Code... }); return builder.Build(); } }
您还可以为自定义设置引发特定于平台的事件。下面列举了每个平台的特定事件(可用):
目前,有以下 21 个特定于 Android 平台的事件可用:
OnActivityResult
OnApplicationConfigurationChanged
OnApplicationCreate
OnApplicationCreating
OnApplicationLowMemory
OnApplicationTrimMemory
OnBackPressed
OnConfigurationChanged
OnCreate
OnDestroy
OnNewIntent
OnPause
OnPostCreate
OnPostResume
OnRequestPermissionsResult
OnRestart
OnRestoreInstanceState
OnResume
OnSaveInstanceState
OnStart
OnStop
您可以使用编译器指令通过 AddAndroid() 扩展方法调用特定于 Android 平台的事件。
请参阅下面的代码示例。在这里,我们将调用 OnBackPressed
事件以移动到上一个目标。
public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }).ConfigureLifecycleEvents(AppLifecycle => { #if ANDROID AppLifecycle.AddAndroid(android => android .OnBackPressed((activity) => BackPressed())); #endif }); return builder.Build(); } static bool BackPressed() { return true; }
目前,有以下 10 个特定于 iOS 平台的事件可用:
ContinueUserActivity
DidEnterBackground
FinishedLaunching
OnActivated
OnResignActivation
OpenUrl
PerformActionForShortcutItem
WillEnterForeground
WillFinishLaunching
WillTerminate
您可以使用编译器指令通过 AddiOS() 扩展方法调用特定于 iOS 平台的事件。
请参阅下面的代码示例。在这里,我们将调用 WillEnterForeground
事件,该事件将在应用处于焦点模式时引发。
public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder.UseMauiApp<App>() builder.ConfigureLifecycleEvents(AppLifecycle => { #if IOS AppLifecycle.AddiOS(ios => ios .WillEnterForeground((app) => EnteredForeground()) ); #endif }); return builder.Build(); } static void EnterForeground() { }
目前,以下 8 个特定于 Windows 平台的事件可用:
OnActivated
OnClosed
OnLaunched
OnLaunching
OnNativeMessage
OnResumed
OnVisibilityChanged
OnWindowCreated
您可以使用编译器指令通过 AddWindows() 扩展方法来调用特定于 Windows 平台的事件。
请参阅下面的代码示例。在这里,我们将调用 OnNativeMessage
事件来访问应用程序实例并删除标题栏。
public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder.UseMauiApp<App>() builder.ConfigureLifecycleEvents(AppLifecycle => { #if WINDOWS AppLifecycle .AddWindows(windows => windows.OnNativeMessage((app, args) => { app.ExtendsContentIntoTitleBar = false; })); #endif }); return builder.Build(); }
关于不同平台的生命周期事件定义位置: Core > LifecycleEvents
感谢你能够认真阅读完这篇文章,希望小编分享的“在.NET MAUI应用中怎么配置应用生命周期事件”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。