protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { var deferral = args.TaskInstance.GetDeferral(); switch (args.TaskInstance.Task.Name) { case ToastHelper.ToastTaskName: if (args.TaskInstance.TriggerDetails is Windows.UI.Notifications.ToastNotificationActionTriggerDetail details) { // Perform tasks switch (details.Argument) { case "Next": MediaHelper.MoveNext(); break; case "Pause": MediaHelper.Pause(); break; case "Play": MediaHelper.Play(); break; } } break; } deferral.Complete(); }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); m_deferral = args.TaskInstance.GetDeferral(); args.TaskInstance.Canceled += (s, r) => { Logger.Instance.LogMessage($"Task canceled for {r}"); m_deferral.Complete(); }; Logger.Instance.LogMessage($"{args.TaskInstance.Task.Name} activated in background"); if (args.TaskInstance.TriggerDetails is RawNotification) { var notification = args.TaskInstance.TriggerDetails as RawNotification; Logger.Instance.LogMessage($"RawNotification received {notification.Content}"); await Task.Run(() => { if (NotificationProvider != null) { AccountProvider = new MicrosoftAccountProvider(); NotificationProvider = new GraphNotificationProvider(AccountProvider, ""); } NotificationProvider.ReceiveNotification(notification.Content); }); } await Task.Delay(TimeSpan.FromSeconds(30)); Logger.Instance.LogMessage($"Task completed"); }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); IBackgroundTaskInstance taskInstance = args.TaskInstance; if (taskInstance.TriggerDetails is AppServiceTriggerDetails) { AppServiceTriggerDetails appService = taskInstance.TriggerDetails as AppServiceTriggerDetails; AppServiceDeferral = taskInstance.GetDeferral(); // Ottiene un deferral così che il servizio non termina taskInstance.Canceled += OnAppServicesCanceled; // Associa un gestore di cancellazione al task in background Connection = appService.AppServiceConnection; Connection.RequestReceived += OnAppServiceRequestReceived; Connection.ServiceClosed += AppServiceConnection_ServiceClosed; // Sezione critica lock (ThisLock) { Connection.AppServiceName = ConnectionIndex.ToString(); Connections.Add(ConnectionIndex, Connection); AppServiceDeferrals.Add(ConnectionIndex, AppServiceDeferral); ConnectionIndex++; } } }
public void HandleActivation(BackgroundActivatedEventArgs args) { if (backgroundTasks.TryGetValue(args.TaskInstance?.Task?.Name ?? string.Empty, out var task)) { task.Run(args.TaskInstance).FireAndForget(); } }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { BackgroundTaskDeferral deferral = args.TaskInstance.GetDeferral(); // Background activation through toast deferral.Complete(); }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); m_deferral = args.TaskInstance.GetDeferral(); args.TaskInstance.Canceled += (s, r) => { Logger.Instance.LogMessage($"Task canceled for {r}"); m_deferral.Complete(); }; Logger.Instance.LogMessage($"{args.TaskInstance.Task.Name} activated in background with {args.TaskInstance.TriggerDetails.GetType().ToString()}"); if (args.TaskInstance.TriggerDetails is RawNotification) { var rawNotification = args.TaskInstance.TriggerDetails as RawNotification; Logger.Instance.LogMessage($"RawNotification received {rawNotification.Content}"); await ConnectedDevicesManager.ReceiveNotificationAsync(rawNotification.Content); // HACK: Crack the push body to extract the notificationId // var result = JsonConvert.DeserializeObject<RawNotificationPayload>(rawNotification.Content); // var notificationId = result.activities != null && result.activities.Count > 0 ? result.activities[0].id : "Graph Notifications"; // var toast = ConnectedDevicesManager.BuildToastNotification(notificationId, "New notification"); // var toastNotifier = Windows.UI.Notifications.ToastNotificationManager.CreateToastNotifier(); // toastNotifier.Show(toast); await Task.Delay(TimeSpan.FromSeconds(15)); } Logger.Instance.LogMessage($"Task completed"); }
public static MediaCommandType?GetMediaCommand(BackgroundActivatedEventArgs args, bool manageDeferral = false) { if (args == null) { throw new ArgumentNullException(nameof(args)); } var deferral = args.TaskInstance.GetDeferral(); if (!(args.TaskInstance.TriggerDetails is GattCharacteristicNotificationTriggerDetails triggerDetails)) { if (manageDeferral) { deferral.Complete(); } return(null); } var bytes = new byte[triggerDetails.Value.Length]; DataReader.FromBuffer(triggerDetails.Value).ReadBytes(bytes); return(bytes[0].GetMediaCommandType()); }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); if (args.TaskInstance.TriggerDetails is AppServiceTriggerDetails details) { if (details.CallerPackageFamilyName == Package.Current.Id.FamilyName) { try { _appServiceDeferral = args.TaskInstance.GetDeferral(); args.TaskInstance.Canceled += (s, e) => { _appServiceDeferral?.Complete(); _appServiceDeferral = null; Connection = null; AppServiceDisconnected?.Invoke(this, null); }; Connection = details.AppServiceConnection; AppServiceConnected?.Invoke(this, args.TaskInstance.TriggerDetails as AppServiceTriggerDetails); _logger.Info("辅助进程服务连接成功"); } catch (Exception ex) { _logger.Error("辅助进程服务连接失败"); _logger.Error(ex); } } } else { _logger.Error("辅助进程服务连接失败"); _logger.Error(args.TaskInstance.TriggerDetails.GetType()); } }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { var def = args.TaskInstance.GetDeferral(); ToastContent content = new ToastContent() { Visual = new ToastVisual() { BindingGeneric = new ToastBindingGeneric() { Children = { new AdaptiveText() { Text = "Hello world" }, new AdaptiveText() { Text = "Nice toast" }, } } } }; ToastNotification toast = new ToastNotification(content.GetXml()); ToastNotificationManager.CreateToastNotifier().Show(toast); def.Complete(); }
/// <summary> /// 后台任务处理事件 /// </summary> /// <param name="args"></param> protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); IBackgroundTaskInstance taskInstance = args.TaskInstance; //DoYourBackgroundWork(taskInstance); //ShowMsg(); }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); deferral = args.TaskInstance.GetDeferral(); args.TaskInstance.Canceled += (s, r) => { Debug.WriteLine($"Task canceled for {r}"); deferral.Complete(); }; Debug.WriteLine($"{args.TaskInstance.Task.Name} activated in background with {args.TaskInstance.TriggerDetails.GetType().ToString()}"); if (args.TaskInstance.TriggerDetails is RawNotification) { var rawNotification = args.TaskInstance.TriggerDetails as RawNotification; Debug.WriteLine($"RawNotification received {rawNotification.Content}"); if (NotificationsManager == null) { NotificationsManager = new GraphNotificationsManager(); } await NotificationsManager.HandlePushNotificationAsync(rawNotification.Content); } deferral.Complete(); Debug.WriteLine($"Task completed"); }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { RawNotification notification = (RawNotification)args.TaskInstance.TriggerDetails; var deferral = args.TaskInstance.GetDeferral(); base.OnBackgroundActivated(args); ToastContent content = new ToastContent() { Launch = "blah", Visual = new ToastVisual() { BindingGeneric = new ToastBindingGeneric() { Children = { new AdaptiveText() { Text = "It worked!!!" } } } } }; ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(content.GetXml())); await Task.Delay(5000); deferral.Complete(); }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); IBackgroundTaskInstance taskInstance = args.TaskInstance; BackGroundRequestTask(taskInstance); }
protected async override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { // Get a deferral, to prevent the task from closing prematurely // while asynchronous code is still running. base.OnBackgroundActivated(args); BackgroundTaskDeferral deferral = args.TaskInstance.GetDeferral(); args.TaskInstance.Canceled += TaskInstance_Canceled; //await LocationManager.GetCoordinates(); // Update the live tile try { await Task.Run(() => { UpdateTile(); }); } catch { } finally { // Inform the system that the task is finished. //args.TaskInstance.Canceled -= TaskInstance_Canceled; deferral.Complete(); } }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); m_deferral = args.TaskInstance.GetDeferral(); args.TaskInstance.Canceled += (s, r) => { Logger.Instance.LogMessage($"Task canceled for {r}"); m_deferral.Complete(); }; Logger.Instance.LogMessage($"{args.TaskInstance.Task.Name} activated in background with {args.TaskInstance.TriggerDetails.GetType().ToString()}"); if (args.TaskInstance.TriggerDetails is RawNotification) { var rawNotification = args.TaskInstance.TriggerDetails as RawNotification; Logger.Instance.LogMessage($"RawNotification received {rawNotification.Content}"); if (ConnectedDevicesManager == null) { Logger.Instance.LogMessage($"Setup ConnectedDevicesManager"); ConnectedDevicesManager = new ConnectedDevicesManager(); } await ConnectedDevicesManager.ReceiveNotificationAsync(rawNotification.Content); } m_deferral.Complete(); Logger.Instance.LogMessage($"Task completed"); }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { BackgroundTaskDeferral deferral = args.TaskInstance.GetDeferral(); await BackgroundTaskHandler.Current.Run(); deferral.Complete(); }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); IBackgroundTaskInstance taskInstance = args.TaskInstance; DockerUpdateTask.UpdateList().Wait(); }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { var deferral = args.TaskInstance.GetDeferral(); switch (args.TaskInstance.Task.Name) { case TOAST_BACKGROUND_TASK_NAME: if (args.TaskInstance.TriggerDetails is ToastNotificationActionTriggerDetail details && TryGetToken(out var token)) { var arguments = ParseArgs(details.Argument); var userInput = details.UserInput; if (arguments.TryGetValue("channelId", out var cId) && ulong.TryParse(cId, out var channelId)) { if (userInput.TryGetValue("tbReply", out var t) && t is string text) { var client = new DiscordRestClient(new DiscordConfiguration() { Token = token, TokenType = TokenType.User }); await client.CreateMessageAsync(channelId, text, false, null, Enumerable.Empty <IMention>(), null); } } } break; } deferral.Complete(); }
/// <summary> /// Used for the In-Process background task /// https://docs.microsoft.com/en-us/windows/uwp/launch-resume/create-and-register-an-inproc-background-task /// </summary> /// <param name="args"></param> protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); IBackgroundTaskInstance taskInstance = args.TaskInstance; DumperTask.SetInstance(taskInstance); }
protected sealed override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { //var deferral = args.TaskInstance.GetDeferral(); await OnBackgroundActivatedAsync(args); //deferral.Complete(); }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { try { var deferral = args.TaskInstance.GetDeferral(); // Figure out which background task this was switch (args.TaskInstance.Task.Name) { case ToastHelper.TOAST_ACTION_BACKGROUND_TASK: ToastHelper.HandleToastActionBackgroundActivation((ToastNotificationActionTriggerDetail)args.TaskInstance.TriggerDetails); break; case ToastHelper.TOAST_TIME_TRIGGER_BACKGROUND_TASK: ToastHelper.HandleTimeTriggerBackgroundActivation(); break; } deferral.Complete(); } catch { // Report to your telemetry } }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); var deferral = args.TaskInstance.GetDeferral(); // We make a toast notification saying what time it is. var manager = ToastNotificationManager.GetDefault(); var notifier = manager.CreateToastNotifier(); var toastContent = new ToastContent() { Visual = new ToastVisual() { BindingGeneric = new ToastBindingGeneric() { Children = { new AdaptiveText() { Text = $"Toast fired at {DateTime.Now:hh-mm}" } } } } }; notifier.Show(new ToastNotification(toastContent.GetXml())); deferral.Complete(); }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { var appServiceDetails = args.TaskInstance.TriggerDetails as AppServiceTriggerDetails; if ((appServiceDetails != null) && (appServiceDetails.Name == AppServiceName) && (appServiceDetails.IsRemoteSystemConnection)) { var deferral = args.TaskInstance.GetDeferral(); args.TaskInstance.Canceled += (s, e) => { deferral.Complete(); }; appServiceDetails.AppServiceConnection.RequestReceived += async(s, e) => { var requestDeferral = e.GetDeferral(); await this.ProcessAppServiceRequestAsync(e); appServiceDetails.AppServiceConnection.Dispose(); requestDeferral.Complete(); deferral.Complete(); }; } }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { if (args.TaskInstance.TriggerDetails is AppServiceTriggerDetails) { SetupAppServiceConnection(args.TaskInstance); } }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); var taskInstance = args.TaskInstance; Singleton <RomeConnectionManager> .Instance.Initialize(taskInstance); }
/// <summary> /// Invoked when the application is activated in the background. /// </summary> /// <param name="e">Makes all data avalible from the IBackgroundTask.Run method avalible to your event when your app is activated by a background trigger.</param> protected override void OnBackgroundActivated(BackgroundActivatedEventArgs e) { var deferral = e.TaskInstance.GetDeferral(); // Todo: Handle in-process background tasks. deferral.Complete(); }
protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args) { if (TheASConnectionListener == null || !await TheASConnectionListener.HandleBackgroundActivationAsync(args.TaskInstance)) { // Handle other stuff } }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); if (args.TaskInstance.TriggerDetails is AppServiceTriggerDetails) { AppServiceManager.OnAppServiceActivated(args); } }
public static async Task OnBackgroundActivated(BackgroundActivatedEventArgs args) { var deferral = args.TaskInstance.GetDeferral(); await StartJobs(); deferral.Complete(); }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); var taskWrapper = new AppTaskInstanceWrapper(args.TaskInstance); AppData.ExtensionClient.Initialize(taskWrapper); }
/// <summary> /// Initializes the app service on the host process /// </summary> protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); if (args.TaskInstance.TriggerDetails is AppServiceTriggerDetails) { appServiceDeferral = args.TaskInstance.GetDeferral(); AppServiceTriggerDetails details = args.TaskInstance.TriggerDetails as AppServiceTriggerDetails; Connection = details.AppServiceConnection; } }
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); var deferral = args.TaskInstance.GetDeferral(); Debug.WriteLine("Background Task Activated"); eventAggregator.PublishOnCurrentThread(new BackgroundTaskMessage()); deferral.Complete(); }
//protected override void OnActivated(IActivatedEventArgs args) //{ // base.OnActivated(args); // AppManager.Init(); // var rootFrame = Window.Current.Content as Frame; // if (rootFrame == null) // { // rootFrame = new Frame(); // rootFrame.NavigationFailed += OnNavigationFailed; // Window.Current.Content = rootFrame; // } // if (rootFrame.Content == null) // rootFrame.Navigate(typeof(MainPage)); // Window.Current.Activate(); //} protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { base.OnBackgroundActivated(args); IBackgroundTaskInstance taskInstance = args.TaskInstance; var appServiceDeferral = taskInstance.GetDeferral(); taskInstance.Canceled += (s, e) => { appServiceDeferral.Complete(); }; var appService = taskInstance.TriggerDetails as AppServiceTriggerDetails; var appServiceConnection = appService.AppServiceConnection; appServiceConnection.RequestReceived += OnAppServiceRequestReceived; appServiceConnection.ServiceClosed += (s, e) => { appServiceDeferral.Complete(); }; }
/// <summary> /// Override the Application.OnBackgroundActivated method to handle background activation in /// the main process. This entry point is used when BackgroundTaskBuilder.TaskEntryPoint is /// not set during background task registration. /// </summary> /// <param name="args"></param> protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args) { BackgroundActivity.Start(args.TaskInstance); }