您好,登錄后才能下訂單哦!
這篇文章主要介紹了在.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(); } }
您還可以為自定義設置引發特定于平臺的事件。下面列舉了每個平臺的特定事件(可用):
目前,有以下 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; }
目前,有以下 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() { }
目前,以下 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應用中怎么配置應用生命周期事件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。