应用程序生命周期
并非所有平台都是相同的!例如,您可能习惯于在Windows Forms或WPF中开发的生命周期管理仅适用于桌面平台。Avalonia UI 是一个跨平台框架;因此,为了使您的应用程序可移植,它提供了几种不同的应用程序生命周期模型,并且还允许您在目标平台允许的情况下手动控制一切。
生命周期如何工作?
对于桌面应用程序,您可以这样初始化:
class Program
{
// 这个方法是为了IDE预览器基础设施而需要的
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>().UsePlatformDetect();
// 入口点。此时还没有准备好,所以在这个点上
// 您不应该使用任何Avalonia类型或任何期望
// 准备好SynchronizationContext的东西
public static int Main(string[] args)
=> BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}
然后在Application
类中创建主窗口:
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime
is IClassicDesktopStyleApplicationLifetime desktop)
desktop.MainWindow = new MainWindow();
else if (ApplicationLifetime
is ISingleViewApplicationLifetime singleView)
singleView.MainView = new MainView();
base.OnFrameworkInitializationCompleted();
}