Xamarin Forms Определить, активен ли экран и / или устройство заблокировано - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть приложение Xamarin Forms , которое создает фоновый звук и, следовательно, приложение может работать, когда устройство находится в режиме блокировки и / или когда экран не активен (спящий режим экрана).

У меня есть необходимость предотвратить обновление экрана, пока главная страница Xamarin Forms (ContentPage) не видна и не активна. Другими словами, мне нужно определить, отключен ли экран (в спящем режиме), если устройство заблокировано, а также предпочтительно, когда главная страница в данный момент не активна и не видна.

С помощью форм Xamarin как определить, не активен ли экран и / или находится ли устройство в режиме блокировки?


Дополнительная информация

  • Я попытался использовать Xamarin.Essentials и проверить свойство ScreenLock.IsActive . Это не сработало, поскольку IsActive всегда было false , даже когда устройство находилось в режиме блокировки. Протестировано на устройстве iOS (iPhone).
  • Причина, по которой мне нужно предотвращать обновления экрана, заключается в том, что я использую CocosSharp и периодически размещаю анимации CCParticle на экране. Когда экран не активен, новые анимации CCParticle могут продолжать добавляться, но существующие анимации не запускаются до установленной продолжительности и, таким образом, никогда не «истекают». Результатом является постоянно растущее число анимаций CCParticle на (скрытом) экране, которые постоянно потребляют ресурсы.

1 Ответ

0 голосов
/ 12 ноября 2018

В вашем 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
}

Звучит так, будто вы хотите, чтобы что-то происходило, когда приложение запускается / возобновляется, но не когда оно спит (когда экран неактивен или приложение находится в фоновом режиме).

...