private void RegisterTaskButton_Click(Object sender, RoutedEventArgs e) { if (GetRegisteredTask() == null) { BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); MaintenanceTrigger trigger = new MaintenanceTrigger(MAINTENANCE_INTERVAL, false); taskBuilder.SetTrigger(trigger); taskBuilder.TaskEntryPoint = PUSH_NOTIFICATIONS_TASK_ENTRY_POINT; taskBuilder.Name = PUSH_NOTIFICATIONS_TASK_NAME; SystemCondition internetCondition = new SystemCondition(SystemConditionType.InternetAvailable); taskBuilder.AddCondition(internetCondition); try { taskBuilder.Register(); rootPage.NotifyUser("Task registered", NotifyType.StatusMessage); } catch (Exception ex) { rootPage.NotifyUser("Error registering task: " + ex.Message, NotifyType.ErrorMessage); } } else { rootPage.NotifyUser("Task already registered", NotifyType.ErrorMessage); } }
private async void Register() { BackgroundExecutionManager.RemoveAccess(); var promise = await BackgroundExecutionManager.RequestAccessAsync(); if (promise == BackgroundAccessStatus.DeniedByUser || promise == BackgroundAccessStatus.DeniedBySystemPolicy) { return; } foreach (var task in BackgroundTaskRegistration.AllTasks) { if (task.Value.Name == TaskName) { task.Value.Unregister(true); } } var builder = new BackgroundTaskBuilder(); builder.Name = TaskName; builder.TaskEntryPoint = EntryPoint; if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile") { builder.AddCondition(new SystemCondition(SystemConditionType.UserNotPresent)); builder.CancelOnConditionLoss = true; builder.AddCondition(new SystemCondition(SystemConditionType.FreeNetworkAvailable)); } var maintenanceTrigger = new MaintenanceTrigger(15, false); builder.SetTrigger(maintenanceTrigger); builder.IsNetworkRequested = true; builder.CancelOnConditionLoss = true; BackgroundTaskRegistration registration = builder.Register(); }
private void RegisterBackgroundTask() { try { foreach (var cur in BackgroundTaskRegistration.AllTasks) { if (cur.Value.Name == "FTE_All_EscalationThread_Notification") { cur.Value.Unregister(true); } } bool isregister = BackgroundTaskRegistration.AllTasks.Any(x => x.Value.Name == "FTE_All_EscalationThread_Notification"); if (!isregister) { BackgroundTaskBuilder builder = new BackgroundTaskBuilder { Name = "FTE_All_EscalationThread_Notification", TaskEntryPoint = "EscalationSystemBackgroundTask.FTE_All_EscalationThread_Notification" }; MaintenanceTrigger trigger = new MaintenanceTrigger(15, false); builder.SetTrigger(trigger); BackgroundTaskRegistration task = builder.Register(); } } catch { } }
/// <summary> /// Register all our background tasks /// </summary> public static void Register() { // Unregister everything to be just sure foreach (var task in BackgroundTaskRegistration.AllTasks) { task.Value.Unregister(true); } // Clean up the database once a date, removing old items from the cache. MaintenanceTrigger trigger = new MaintenanceTrigger(24 * 60, false); BackgroundTaskBuilder builder = new BackgroundTaskBuilder(); builder.Name = "Clean IndicoWalker's Local Cache of Expired Items"; builder.TaskEntryPoint = "IWalker.BackgroundTasks.CleanDBBackgroundTask"; builder.SetTrigger(trigger); var ret = builder.Register(); }
private async Task RegisterBackgroundTasksAsync() { await BackgroundExecutionManager.RequestAccessAsync(); var entryPoint = "BackgroundTask.TestBackgroundTask"; var condition = new SystemCondition(SystemConditionType.InternetAvailable); // check with SYSTEM trigger (when internet available) var internetAvailableTrigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false); RegisterBackgroundTask(entryPoint, "TestBackgroundTask", internetAvailableTrigger, null); // check with Maintenance trigger (when internet available) var maintenanceTriggerPeriod = TimeSpan.FromDays(1); var timeTrigger = new MaintenanceTrigger((uint)maintenanceTriggerPeriod.TotalMinutes, false); RegisterBackgroundTask(entryPoint, "TestBackgroundTask", timeTrigger, condition); }
/// <summary> /// Register the background task /// </summary> public async Task RegisterAsync() { BackgroundAccessStatus status = BackgroundExecutionManager.GetAccessStatus(); if (status == BackgroundAccessStatus.Unspecified) { BackgroundAccessStatus backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync(); if (backgroundAccessStatus != BackgroundAccessStatus.Denied) { // Delete all tasks foreach (var registeredTask in BackgroundTaskRegistration.AllTasks) { registeredTask.Value.Unregister(true); } // Register new tasks foreach (var task in _tasks) { BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder { Name = task.Key, TaskEntryPoint = task.Value }; IBackgroundTrigger trigger; if (backgroundAccessStatus == BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity || backgroundAccessStatus == BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity) { trigger = new TimeTrigger(30, false); } else { trigger = new MaintenanceTrigger(30, false); } taskBuilder.SetTrigger(trigger); taskBuilder.Register(); } } } }
private const int MAINTENANCE_INTERVAL = 10 * 24 * 60; // Check for channels that need to be updated every 10 days public App() { InitializeComponent(); this.Suspending += new SuspendingEventHandler(OnSuspending); if (!IsTaskRegistered()) { BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); MaintenanceTrigger trigger = new MaintenanceTrigger(MAINTENANCE_INTERVAL, false); taskBuilder.SetTrigger(trigger); taskBuilder.TaskEntryPoint = PUSH_NOTIFICATIONS_TASK_ENTRY_POINT; taskBuilder.Name = PUSH_NOTIFICATIONS_TASK_NAME; SystemCondition internetCondition = new SystemCondition(SystemConditionType.InternetAvailable); taskBuilder.AddCondition(internetCondition); taskBuilder.Register(); } }