加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 应用 > 正文

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

发布时间:2022-12-03 15:01:31 所属栏目:应用 来源:未知
导读: 前言
管理应用生命周期事件是开发应用程序时最常见的要求之一。同样,有必要在跨平台应用程序(如 .NET MAUI应用)中处理应用生命周期,以提高其效率。
在这篇博客中,我将通过代码示例分享

前言

管理应用生命周期事件是开发应用程序时最常见的要求之一。同样,有必要在跨平台应用程序(如 .NET MAUI应用)中处理应用生命周期,以提高其效率。

在这篇博客中,我将通过代码示例分享如何在 .NET MAUI 应用中配置应用生命周期事件。

应用程序生命周期

通常,应用具有不同的生命周期或状态。.NET MAUI 应用具有以下四个生命周期(执行状态):

当窗口移动到每个状态时,将触发不同的事件。

跨平台生命周期

以下是跨平台应用中提供的一些预定义生命周期事件:

下面是映射图,其中说明了 .NET MAUI 框架将如何映射本机事件。

百度轻应用 小程序_应用程序_程序设计语言vb及开发应用

如何配置生命周期事件

使用 .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 平台的事件可用:

您可以使用编译器指令通过 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 平台的事件可用:

您可以使用编译器指令通过 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 平台的事件可用:

您可以使用编译器指令通过 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

百度轻应用 小程序_程序设计语言vb及开发应用_应用程序

参考

有关更多详细信息,请参阅 .NET MAUI 应用程序生命周期事件文档。

应用程序_百度轻应用 小程序_程序设计语言vb及开发应用

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!