如何在.NET MAUI应用中配置所有应用生命周期事件以实现全面的应用状态管理?

2026-03-30 10:561阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1420个文字,预计阅读时间需要6分钟。

如何在.NET MAUI应用中配置所有应用生命周期事件以实现全面的应用状态管理?

目录+前言+应用生命周期+跨平台生命周期+如何配置生命周期事件+特定于平台的生命周期事件+Android+IOS+Windows+参考+前言+管理应用生命周期事件是开发应用时常见的需求。

目录
  • 前言
  • 应用程序生命周期
  • 跨平台生命周期
  • 如何配置生命周期事件
  • 特定于平台的生命周期事件
    • Android
    • IOS
    • Windows
  • 参考

    前言

    管理应用生命周期事件是开发应用程序时最常见的要求之一。同样,有必要在跨平台应用程序(如 .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<App>() .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<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; }

    IOS

    目前,有以下 10 个特定于 iOS 平台的事件可用:

    • ContinueUserActivity
    • DidEnterBackground
    • FinishedLaunching
    • OnActivated
    • OnResignActivation
    • OpenUrl
    • PerformActionForShortcutItem
    • WillEnterForeground
    • WillFinishLaunching
    • WillTerminate

    您可以使用编译器指令通过 AddiOS() 扩展方法调用特定于 iOS 平台的事件。
    请参阅下面的代码示例。在这里,我们将调用 WillEnterForeground 事件,该事件将在应用处于焦点模式时引发。

    如何在.NET MAUI应用中配置所有应用生命周期事件以实现全面的应用状态管理?

    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() { }

    Windows

    目前,以下 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 应用程序生命周期事件文档。

    到此这篇关于在.NET MAUI应用中配置应用生命周期事件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

    本文共计1420个文字,预计阅读时间需要6分钟。

    如何在.NET MAUI应用中配置所有应用生命周期事件以实现全面的应用状态管理?

    目录+前言+应用生命周期+跨平台生命周期+如何配置生命周期事件+特定于平台的生命周期事件+Android+IOS+Windows+参考+前言+管理应用生命周期事件是开发应用时常见的需求。

    目录
    • 前言
    • 应用程序生命周期
    • 跨平台生命周期
    • 如何配置生命周期事件
    • 特定于平台的生命周期事件
      • Android
      • IOS
      • Windows
    • 参考

      前言

      管理应用生命周期事件是开发应用程序时最常见的要求之一。同样,有必要在跨平台应用程序(如 .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<App>() .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<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; }

      IOS

      目前,有以下 10 个特定于 iOS 平台的事件可用:

      • ContinueUserActivity
      • DidEnterBackground
      • FinishedLaunching
      • OnActivated
      • OnResignActivation
      • OpenUrl
      • PerformActionForShortcutItem
      • WillEnterForeground
      • WillFinishLaunching
      • WillTerminate

      您可以使用编译器指令通过 AddiOS() 扩展方法调用特定于 iOS 平台的事件。
      请参阅下面的代码示例。在这里,我们将调用 WillEnterForeground 事件,该事件将在应用处于焦点模式时引发。

      如何在.NET MAUI应用中配置所有应用生命周期事件以实现全面的应用状态管理?

      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() { }

      Windows

      目前,以下 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 应用程序生命周期事件文档。

      到此这篇关于在.NET MAUI应用中配置应用生命周期事件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。