可激活生命周期 v11.1
IActivatableLifetime
服务定义了一组与应用程序激活和去激活生命周期相关的方法和事件。IActivatableLifetime
是一个全局应用程序级别的服务,可以通过 Application
实例使用 TryGetService
方法访问:Application.Current.TryGetService<IActivatableLifetime>()
。
事件
Activated
当应用程序因各种原因被激活时引发的事件,这些原因由 ActivationKind
枚举描述。
Deactivated
当应用程序因各种原因被去激活时引发的事件,这些原因由 ActivationKind
枚举描述。
方法
TryLeaveBackground
告诉应用程序尝试离开其后台状态。如果可能并且平台支持此操作,则返回 true
;否则返回 false
。
备注
例如在 macOS 上是 [NSApp unhide]
。
TryEnterBackground
告诉应用程序尝试进入其后台状态。如果可能并且平台支持此操作,则返回 true
;否则返回 false
。
备注
例如在 macOS 上是 [NSApp hide]
。
示例
处理应用程序进入和退出后台状态
在某些应用程序中,您可能希望在应用程序处于后台时暂停或停止某些代码处理,比如说暂停多媒体播放或禁用周期性的 HTTP 请求。
if (Application.Current.TryGetFeature<IActivatableLifetime>() is { } activatableLifetime)
{
activatableLifetime.Activated += (sender, args) =>
{
if (args.Kind == ActivationKind.Background)
{
Console.WriteLine($"App exited background");
}
};
activatableLifetime.Deactivated += (sender, args) =>
{
if (args.Kind == ActivationKind.Background)
{
Console.WriteLine($"App entered background");
}
};
}