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);
            }
        }
Exemple #2
0
        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();
                    }
                }
            }
        }
Exemple #7
0
        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();
            }
        }