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; } }
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(); } }