您好,登錄后才能下訂單哦!
這篇文章主要介紹了在.NET MAUI應(yīng)用中怎么配置應(yīng)用生命周期事件,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
通常,應(yīng)用具有不同的生命周期或狀態(tài)。.NET MAUI 應(yīng)用具有以下四個生命周期(執(zhí)行狀態(tài)):
運行 (Running)
未運行 (Not running)
關(guān)閉 (Deactivated)
停止 (Stopped)
當窗口移動到每個狀態(tài)時,將觸發(fā)不同的事件。
以下是跨平臺應(yīng)用中提供的一些預定義生命周期事件:
Created: 應(yīng)用從未運行狀態(tài)移動到正在運行狀態(tài)時發(fā)生。通常,當我們啟動新窗口時。
Activated: 當窗口從未聚焦狀態(tài)移動到聚焦狀態(tài)(未聚焦 = 位于另一個窗口后面)時發(fā)生。
Deactivated: 當窗口移動到未聚焦狀態(tài)時發(fā)生。
Stopped: 在窗口變?yōu)殡[藏時發(fā)生。例如,當我們將其最小化時。這樣,窗口就有可能被破壞。
Resumed: 已停止事件的后續(xù)事件,但與創(chuàng)建的事件不同。
Destroying: 在窗口被銷毀和解除分配時發(fā)生。
下面是映射圖,其中說明了 .NET MAUI 框架將如何映射本機事件。
使用 .NET MAUI Preview 13,您可以使用 MauiAppBuilder 和 ConfigureLifecycleEvents 擴展方法輕松地在 MauiProgram 類中配置生命周期事件。此方法在 Microsoft.Maui.LifecycleEvents 命名空間中可用。
有關(guān)常見配置,請參閱以下代碼示例。
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(); } }
您還可以為自定義設(shè)置引發(fā)特定于平臺的事件。下面列舉了每個平臺的特定事件(可用):
目前,有以下 21 個特定于 Android 平臺的事件可用:
OnActivityResult
OnApplicationConfigurationChanged
OnApplicationCreate
OnApplicationCreating
OnApplicationLowMemory
OnApplicationTrimMemory
OnBackPressed
OnConfigurationChanged
OnCreate
OnDestroy
OnNewIntent
OnPause
OnPostCreate
OnPostResume
OnRequestPermissionsResult
OnRestart
OnRestoreInstanceState
OnResume
OnSaveInstanceState
OnStart
OnStop
您可以使用編譯器指令通過 AddAndroid() 擴展方法調(diào)用特定于 Android 平臺的事件。
請參閱下面的代碼示例。在這里,我們將調(diào)用 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() 擴展方法調(diào)用特定于 iOS 平臺的事件。
請參閱下面的代碼示例。在這里,我們將調(diào)用 WillEnterForeground
事件,該事件將在應(yīng)用處于焦點模式時引發(fā)。
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() 擴展方法來調(diào)用特定于 Windows 平臺的事件。
請參閱下面的代碼示例。在這里,我們將調(diào)用 OnNativeMessage
事件來訪問應(yīng)用程序?qū)嵗h除標題欄。
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(); }
關(guān)于不同平臺的生命周期事件定義位置: Core > LifecycleEvents
感謝你能夠認真閱讀完這篇文章,希望小編分享的“在.NET MAUI應(yīng)用中怎么配置應(yīng)用生命周期事件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。