iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >在.NET MAUI应用中配置应用生命周期事件
  • 124
分享到

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

2024-04-02 19:04:59 124人浏览 泡泡鱼
摘要

目录前言应用程序生命周期跨平台生命周期如何配置生命周期事件特定于平台的生命周期事件AndroidiOSwindows参考前言 管理应用生命周期事件是开发应用程序时最常见的要求之一。同

前言

管理应用生命周期事件是开发应用程序时最常见的要求之一。同样,有必要在跨平台应用程序(如 .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 事件,该事件将在应用处于焦点模式时引发。

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应用中配置应用生命周期事件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 在.NET MAUI应用中配置应用生命周期事件

本文链接: https://www.lsjlt.com/news/144124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作