diff --git a/ReactiveUI/Xaml/WinRTAutoSuspendApplication.cs b/ReactiveUI/Xaml/WinRTAutoSuspendApplication.cs index fb328e629b..0251ad9775 100644 --- a/ReactiveUI/Xaml/WinRTAutoSuspendApplication.cs +++ b/ReactiveUI/Xaml/WinRTAutoSuspendApplication.cs @@ -30,9 +30,13 @@ public AutoSuspendHelper(Application app) .Where(x => x.PreviousExecutionState == ApplicationExecutionState.Terminated) .Select(_ => Unit.Default); + var fastResuming = new Subject(); + app.Resuming += (o, e) => fastResuming.OnNext(ApplicationExecutionState.Suspended); var unpausing = new[] { ApplicationExecutionState.Suspended, ApplicationExecutionState.Running, }; RxApp.SuspensionHost.IsUnpausing = _launched - .Where(x => unpausing.Contains(x.PreviousExecutionState)) + .Select(x => x.PreviousExecutionState) + .Merge(fastResuming) + .Where(x => unpausing.Contains(x)) .Select(_ => Unit.Default); var shouldPersistState = new Subject();