diff --git a/src/Controls/samples/Controls.Sample/Startup.cs b/src/Controls/samples/Controls.Sample/MauiProgram.cs similarity index 100% rename from src/Controls/samples/Controls.Sample/Startup.cs rename to src/Controls/samples/Controls.Sample/MauiProgram.cs diff --git a/src/Controls/samples/Controls.Sample/MauiWindow.cs b/src/Controls/samples/Controls.Sample/MauiWindow.cs new file mode 100644 index 000000000000..12bbdba3d0ee --- /dev/null +++ b/src/Controls/samples/Controls.Sample/MauiWindow.cs @@ -0,0 +1,35 @@ +using System; +using Microsoft.Maui.Controls; + +namespace Maui.Controls.Sample +{ + public class MauiWindow : Window + { + public MauiWindow() : base() { } + public MauiWindow(Page page) : base(page) { } + + protected override void OnCreated() + { + Console.WriteLine("OnCreated"); + base.OnCreated(); + } + + protected override void OnStopped() + { + Console.WriteLine("OnStopped"); + base.OnStopped(); + } + + protected override void OnResumed() + { + Console.WriteLine("OnResumed"); + base.OnResumed(); + } + + protected override void OnDestroying() + { + Console.WriteLine("OnDestroying"); + base.OnDestroying(); + } + } +} \ No newline at end of file diff --git a/src/Controls/samples/Controls.Sample/XamlApp.xaml.cs b/src/Controls/samples/Controls.Sample/XamlApp.xaml.cs index 52f6cd5aa59d..efae212f4cfc 100644 --- a/src/Controls/samples/Controls.Sample/XamlApp.xaml.cs +++ b/src/Controls/samples/Controls.Sample/XamlApp.xaml.cs @@ -5,7 +5,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Maui; using Microsoft.Maui.Controls; -using Microsoft.Maui.Devices; using Microsoft.Maui.Storage; namespace Maui.Controls.Sample @@ -49,8 +48,11 @@ async void LoadAsset() // Must not use MainPage for multi-window protected override Window CreateWindow(IActivationState activationState) { - var window = new Window(Services.GetRequiredService()); - window.Title = ".NET MAUI Samples Gallery"; + var window = new MauiWindow(Services.GetRequiredService()) + { + Title = ".NET MAUI Samples Gallery" + }; + return window; } diff --git a/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Android.cs b/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Android.cs index c02faea6b682..1c5bbde2c446 100644 --- a/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Android.cs +++ b/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Android.cs @@ -1,6 +1,4 @@ -using System; using Microsoft.Maui.Hosting; -using Microsoft.Maui.LifecycleEvents; namespace Microsoft.Maui.LifecycleEvents { @@ -66,4 +64,4 @@ static void OnConfigureLifeCycle(IAndroidLifecycleBuilder android) }); } } -} +} \ No newline at end of file diff --git a/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Windows.cs b/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Windows.cs index 56a51980422e..616a100c3977 100644 --- a/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Windows.cs +++ b/src/Core/src/Hosting/LifecycleEvents/AppHostBuilderExtensions.Windows.cs @@ -1,9 +1,7 @@ using Microsoft.Maui.Hosting; -using Microsoft.Maui.LifecycleEvents; -using System; namespace Microsoft.Maui.LifecycleEvents -{ +{ public static partial class AppHostBuilderExtensions { internal static MauiAppBuilder ConfigureCrossPlatformLifecycleEvents(this MauiAppBuilder builder) => diff --git a/src/Core/src/Platform/Android/MauiAppCompatActivity.Lifecycle.cs b/src/Core/src/Platform/Android/MauiAppCompatActivity.Lifecycle.cs index d441f89d459c..8a2ff27561db 100644 --- a/src/Core/src/Platform/Android/MauiAppCompatActivity.Lifecycle.cs +++ b/src/Core/src/Platform/Android/MauiAppCompatActivity.Lifecycle.cs @@ -3,7 +3,6 @@ using Android.Content.PM; using Android.Content.Res; using Android.OS; -using Android.Views; using Microsoft.Maui.Devices; using Microsoft.Maui.LifecycleEvents; @@ -95,5 +94,12 @@ protected override void OnRestoreInstanceState(Bundle savedInstanceState) MauiApplication.Current?.Services?.InvokeLifecycleEvents(del => del(this, savedInstanceState)); } + + protected override void OnDestroy() + { + base.OnDestroy(); + + MauiApplication.Current?.Services?.InvokeLifecycleEvents(del => del(this)); + } } } \ No newline at end of file diff --git a/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs b/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs index d66d247979c0..6f379ef97604 100644 --- a/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs +++ b/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs @@ -114,6 +114,12 @@ public virtual void OnResignActivation(UIApplication application) Services?.InvokeLifecycleEvents(del => del(application)); } + [Export("sceneDidDisconnect:")] + public void DidDisconnect(UIScene scene) + { + Services?.InvokeLifecycleEvents(del => del(scene)); + } + [Export("applicationWillTerminate:")] public virtual void WillTerminate(UIApplication application) {