3

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

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

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


附加信息

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

1 回答 1

2

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

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

于 2018-11-12T09:56:13.430 回答