Esempio n. 1
0
        public void OnBackgroundActivated(IBackgroundTaskInstance taskInstance)
        {
            switch (taskInstance.Task.Name)
            {
            case CALL_ORIGIN_DATA_REQUEST:
                //PhoneCallOriginDataRequestTriggerDetails originDataRequest = args.TaskInstance.TriggerDetails as PhoneCallOriginDataRequestTriggerDetails;
                //PhoneCallOrigin data = new PhoneCallOrigin();
                //data.Category = "Category";
                //data.CategoryDescription = "CategoryDescription";
                //data.DisplayName = "DisplayName";
                //data.Location = "Location";
                //PhoneCallOriginManager.SetCallOrigin(originDataRequest.RequestId, data);
                break;

            case LINE_STATE_CHANGED:
                PhoneLineChangedTriggerDetails lineChangedDetails = taskInstance.TriggerDetails as PhoneLineChangedTriggerDetails;
                if (!Skip && !App.Current.IsForeground)
                {
                    Skip = true;
                    OnLateBackgroundActivation();
                }
                break;

            case TOAST_BACKGROUNG_ACTIVATED:
                ToastNotificationActionTriggerDetail toastDetails = taskInstance.TriggerDetails as ToastNotificationActionTriggerDetail;
                App.Current.OnToastNotificationActivated(ToastActivationType.Background, toastDetails.Argument);
                break;
            }
        }
Esempio n. 2
0
        protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args)
        {
            base.OnBackgroundActivated(args);
            BackgroundTaskDeferral deferral = args.TaskInstance.GetDeferral();

            try
            {
                await Initialisation;
                switch (args.TaskInstance.Task.Name)
                {
                case CALL_ORIGIN_DATA_REQUEST:
                    //PhoneCallOriginDataRequestTriggerDetails originDataRequest = args.TaskInstance.TriggerDetails as PhoneCallOriginDataRequestTriggerDetails;
                    //PhoneCallOrigin data = new PhoneCallOrigin();
                    //data.Category = "Category";
                    //data.CategoryDescription = "CategoryDescription";
                    //data.DisplayName = "DisplayName";
                    //data.Location = "Location";
                    //PhoneCallOriginManager.SetCallOrigin(originDataRequest.RequestId, data);
                    break;

                case LINE_STATE_CHANGED:
                    PhoneLineChangedTriggerDetails lineChangedDetails = args.TaskInstance.TriggerDetails as PhoneLineChangedTriggerDetails;
                    await Task.Run(OnLateBackgroundActivation);

                    _CallHandler.WaitOne(WAIT_CALL_DURATION);
                    _CallHandler.Reset();
                    break;

                case TOAST_BACKGROUNG_ACTIVATED:
                    ToastNotificationActionTriggerDetail toastDetails = args.TaskInstance.TriggerDetails as ToastNotificationActionTriggerDetail;
                    OnToastNotificationActivated(ToastActivationType.Background, toastDetails.Argument);
                    break;
                }
            }
            catch
            {
            }
            finally
            {
                deferral.Complete();
            }
        }