千家信息网

在.NET MAUI应用中怎么配置应用生命周期事件

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了在.NET MAUI应用中怎么配置应用生命周期事件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。应用程序生命周期通常
千家信息网最后更新 2025年11月07日在.NET MAUI应用中怎么配置应用生命周期事件

这篇文章主要介绍了在.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()            .ConfigureFonts(fonts =>            {                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");            }).ConfigureLifecycleEvents(app =>            {                 //Code...            });        return builder.Build();    }}

特定于平台的生命周期事件

您还可以为自定义设置引发特定于平台的事件。下面列举了每个平台的特定事件(可用):

Android

目前,有以下 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()            .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;    }

IOS

目前,有以下 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()  builder.ConfigureLifecycleEvents(AppLifecycle => {      #if IOS       AppLifecycle.AddiOS(ios => ios          .WillEnterForeground((app) => EnteredForeground())       );      #endif  });  return builder.Build();}static void EnterForeground(){}

Windows

目前,以下 8 个特定于 Windows 平台的事件可用:

  • OnActivated

  • OnClosed

  • OnLaunched

  • OnLaunching

  • OnNativeMessage

  • OnResumed

  • OnVisibilityChanged

  • OnWindowCreated

您可以使用编译器指令通过 AddWindows() 扩展方法来调用特定于 Windows 平台的事件。
请参阅下面的代码示例。在这里,我们将调用 OnNativeMessage 事件来访问应用程序实例并删除标题栏。

public static MauiApp CreateMauiApp(){  var builder = MauiApp.CreateBuilder();  builder.UseMauiApp()  builder.ConfigureLifecycleEvents(AppLifecycle => {      #if WINDOWS        AppLifecycle         .AddWindows(windows =>           windows.OnNativeMessage((app, args) => {             app.ExtendsContentIntoTitleBar = false;           }));      #endif  });  return builder.Build();}

关于不同平台的生命周期事件定义位置: Core > LifecycleEvents

感谢你能够认真阅读完这篇文章,希望小编分享的"在.NET MAUI应用中怎么配置应用生命周期事件"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0