Xamarin表单检测屏幕是否处于活动状态和/或设备已锁定

时间:2018-11-11 16:49:20

标签: ios xamarin.forms cocossharp

我有一个 Xamarin Forms 应用程序,该应用程序会产生背景音频,因此该应用程序可以在设备处于锁定模式和/或屏幕处于非活动状态(屏幕休眠)时运行。

当Xamarin Forms MainPage(ContentPage)不可见且处于活动状态时,我需要防止屏幕更新。换句话说,我需要检测的是屏幕是否处于禁用状态(在睡眠模式下),设备是否被锁定以及最好是在MainPage当前未处于活动状态且可见时。

使用Xamarin Forms,如何检测屏幕是否未激活和/或设备处于锁定模式?


其他信息

  • 我尝试使用 Xamarin.Essentials 并检查了 ScreenLock.IsActive 属性。这不起作用,因为即使设备处于锁定模式, IsActive 始终为 false 。在iOS设备(iPhone)上进行了测试。
  • 我需要阻止屏幕更新的原因是因为我正在使用 CocosSharp ,并且定期将CCParticle动画放置在屏幕上。当屏幕处于不活动状态时,可以继续添加新的CCParticle动画,但是现有的动画不会达到其设置的持续时间,因此永远不会“过期”。结果是(隐藏)屏幕上的CCParticle动画数量不断增加,从而不断消耗资源。

1 个答案:

答案 0 :(得分:1)

在您的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
}

听起来好像您希望在应用程序启动/恢复时发生事情,而不是在睡眠时(屏幕处于非活动状态或应用程序处于后台时)发生。