我有一个Xamarin Forms应用程序,它产生背景音频,因此该应用程序可以在设备处于锁定模式和/或屏幕不活动(屏幕睡眠)时运行。
当 Xamarin Forms MainPage(一个 ContentPage)不可见且处于活动状态时,我需要防止屏幕更新。换句话说,我需要检测屏幕是否被禁用(在睡眠模式下),设备是否被锁定,并且最好是当 MainPage 当前不活动且不可见时。
使用 Xamarin Forms,如何检测屏幕是否处于非活动状态和/或设备是否处于锁定模式?
附加信息
- 我尝试使用Xamarin.Essentials并检查ScreenLock.IsActive属性。这不起作用,因为即使设备处于锁定模式, IsActive也始终为假。在 iOS 设备 (iPhone) 上测试。
- 我需要阻止屏幕更新的原因是因为我正在使用CocosSharp并且我会定期在屏幕上放置 CCParticle 动画。当屏幕不活动时,可以继续添加新的 CCParticle 动画,但现有的动画不会运行到它们设定的持续时间,因此永远不会“过期”。结果是(隐藏的)屏幕上不断增加的 CCParticle 动画数量不断消耗资源。