Xamarin Forms 检测屏幕是否处于活动状态 and/or 设备已锁定
Xamarin Forms Detect if Screen Active and/or Device Locked
我有一个 Xamarin Forms 应用程序可以生成背景音频,因此当设备处于锁定模式时该应用程序可以 运行 and/or 当屏幕未激活(屏幕休眠)。
我需要在 Xamarin Forms MainPage(ContentPage)不可见且处于活动状态时阻止屏幕更新。换句话说,我需要检测屏幕是否已禁用(处于睡眠模式),设备是否已锁定,并且最好是当 MainPage 当前未处于活动和可见状态时。
使用 Xamarin Forms,如果设备处于锁定模式,我如何检测屏幕是否处于活动状态and/or?
附加信息
- 我尝试使用 Xamarin.Essentials 并检查 ScreenLock.IsActive 属性。这没有用,因为 IsActive 总是 false 即使设备处于锁定模式。在 iOS 设备 (iPhone) 上测试。
- 我需要阻止屏幕更新的原因是因为我正在使用 CocosSharp 并且我会定期在屏幕上放置 CCParticle 动画。当屏幕不活动时,可以继续添加新的 CCParticle 动画,但现有的不会 运行 它们的设定持续时间,因此永远不会 "expire." 结果是 CCParticle 动画的数量不断增加不断消耗资源的(隐藏)屏幕。
在您的App.xaml.cs
中,您有以下方法:
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
听起来您希望在应用程序 starts/resumes 时发生一些事情,但在它休眠时(当屏幕处于非活动状态或应用程序处于后台时)不希望发生。
我有一个 Xamarin Forms 应用程序可以生成背景音频,因此当设备处于锁定模式时该应用程序可以 运行 and/or 当屏幕未激活(屏幕休眠)。
我需要在 Xamarin Forms MainPage(ContentPage)不可见且处于活动状态时阻止屏幕更新。换句话说,我需要检测屏幕是否已禁用(处于睡眠模式),设备是否已锁定,并且最好是当 MainPage 当前未处于活动和可见状态时。
使用 Xamarin Forms,如果设备处于锁定模式,我如何检测屏幕是否处于活动状态and/or?
附加信息
- 我尝试使用 Xamarin.Essentials 并检查 ScreenLock.IsActive 属性。这没有用,因为 IsActive 总是 false 即使设备处于锁定模式。在 iOS 设备 (iPhone) 上测试。
- 我需要阻止屏幕更新的原因是因为我正在使用 CocosSharp 并且我会定期在屏幕上放置 CCParticle 动画。当屏幕不活动时,可以继续添加新的 CCParticle 动画,但现有的不会 运行 它们的设定持续时间,因此永远不会 "expire." 结果是 CCParticle 动画的数量不断增加不断消耗资源的(隐藏)屏幕。
在您的App.xaml.cs
中,您有以下方法:
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
听起来您希望在应用程序 starts/resumes 时发生一些事情,但在它休眠时(当屏幕处于非活动状态或应用程序处于后台时)不希望发生。