예제 #1
0
        private void HandleStateChange(AppLifecycleState state, Action eventHandler)
        {
            Task.Run(async() =>
            {
                try
                {
                    eventHandler.Invoke();

                    _analyticsService.Trace(this, $"App {state}. Notifying handlers: {_handlers.Count}");

                    foreach (var appLifecycleHandler in _handlers)
                    {
                        var response = await appLifecycleHandler.HandleAppStateChangeAsync(state);
                        if (response.IsFailure)
                        {
                            await _errorHandler.HandleErrorAsync(response.Error);
                        }
                    }
                }
                catch (Exception e)
                {
                    await _errorHandler.HandleExceptionAsync(this, e);
                }
            });
        }
예제 #2
0
 protected virtual void handleAppLifecycleStateChanged(AppLifecycleState state) {
     lifecycleState = state;
     switch (state) {
         case AppLifecycleState.resumed:
         case AppLifecycleState.inactive:
             _setFramesEnabledState(true);
             break;
         case AppLifecycleState.paused:
         case AppLifecycleState.detached:
             _setFramesEnabledState(false);
             break;
     }
 }
예제 #3
0
 public AppLifecycleChangedMessage(AppLifecycleState lifecyleState)
 {
     CurrentLifecyleState = lifecyleState;
 }