bool _renderersAdded;
bool _activityCreated;
+ bool _powerSaveReceiverRegistered;
PowerSaveModeBroadcastReceiver _powerSaveModeBroadcastReceiver;
static readonly ManualResetEventSlim PreviousActivityDestroying = new ManualResetEventSlim(true);
{
_layout.HideKeyboard(true);
- if (Forms.IsLollipopOrNewer)
+ if (_powerSaveReceiverRegistered && Forms.IsLollipopOrNewer)
{
- // Don't listen for power save mode changes while we're paused
- UnregisterReceiver(_powerSaveModeBroadcastReceiver);
+ // Don't listen for power save mode changes while we're paused
+ UnregisterReceiver(_powerSaveModeBroadcastReceiver);
+ _powerSaveReceiverRegistered = false;
}
// Stop animations or other ongoing actions that could consume CPU
_previousState = _currentState;
_currentState = AndroidApplicationLifecycleState.OnResume;
- if (Forms.IsLollipopOrNewer)
+ if (!_powerSaveReceiverRegistered && Forms.IsLollipopOrNewer)
{
// Start listening for power save mode changes
RegisterReceiver(_powerSaveModeBroadcastReceiver, new IntentFilter(
PowerManager.ActionPowerSaveModeChanged
));
+
+ _powerSaveReceiverRegistered = true;
}
OnStateChanged();
AndroidApplicationLifecycleState _currentState;
LinearLayout _layout;
+ bool _powerSaveReceiverRegistered;
PowerSaveModeBroadcastReceiver _powerSaveModeBroadcastReceiver;
AndroidApplicationLifecycleState _previousState;
_previousState = _currentState;
_currentState = AndroidApplicationLifecycleState.OnPause;
- if (Forms.IsLollipopOrNewer)
+ if (_powerSaveReceiverRegistered && Forms.IsLollipopOrNewer)
{
// Don't listen for power save mode changes while we're paused
UnregisterReceiver(_powerSaveModeBroadcastReceiver);
+ _powerSaveReceiverRegistered = false;
}
OnStateChanged();
_previousState = _currentState;
_currentState = AndroidApplicationLifecycleState.OnResume;
- if (Forms.IsLollipopOrNewer)
+ if (!_powerSaveReceiverRegistered && Forms.IsLollipopOrNewer)
{
// Start listening for power save mode changes
RegisterReceiver(_powerSaveModeBroadcastReceiver, new IntentFilter(
PowerManager.ActionPowerSaveModeChanged));
+
+ _powerSaveReceiverRegistered = true;
}
OnStateChanged();