Example #1
0
        private async void RegisterBackgroundTask()
        {
            UnregisterBackgroundTask();

            try
            {
                BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();

                Debug.WriteLine("BackgroundAccessStatus: " + status);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }

            // A background task can be registered even if lock screen access was denied.
            BackgroundTaskBuilder builder = new BackgroundTaskBuilder();

            builder.Name           = taskName;
            builder.TaskEntryPoint = "QuestionsBackgroundTasks.TimerTask";
            builder.SetTrigger(new TimeTrigger(15, false));
            BackgroundTaskRegistration task = builder.Register();

            taskCompletedHandler = new BackgroundTaskCompletedEventHandler(OnTaskCompleted);
            task.Completed      += OnTaskCompleted;
        }
 public MainPage()
 {
     this.InitializeComponent();
     updateBGStatus();
  
    _progressEventHandler = new BackgroundTaskProgressEventHandler(OnProgress);
     _taskCompletedHandler = new BackgroundTaskCompletedEventHandler(OnCompleted);
 }
Example #3
0
        public MainPage()
        {
            this.InitializeComponent();
            updateBGStatus();

            _progressEventHandler = new BackgroundTaskProgressEventHandler(OnProgress);
            _taskCompletedHandler = new BackgroundTaskCompletedEventHandler(OnCompleted);
        }
Example #4
0
 protected override void OnNavigatedFrom(NavigationEventArgs e)
 {
     base.OnNavigatedFrom(e);
     // remove completion handler since the scenario is exiting
     foreach (var cur in BackgroundTaskRegistration.AllTasks)
     {
         if (cur.Value.Name == "MobileOperatorNotificationHandler")
         {
             cur.Value.Completed -= currentHandler;
             currentHandler       = null;
         }
     }
 }
Example #5
0
 protected override void OnNavigatedFrom(NavigationEventArgs e)
 {
     base.OnNavigatedFrom(e);
     // remove completion handler since the scenario is exiting
     foreach (var cur in BackgroundTaskRegistration.AllTasks)
     {
         if (cur.Value.Name == "MobileOperatorNotificationHandler")
         {
             cur.Value.Completed -= currentHandler;
             currentHandler = null;
         }
     }
 }
Example #6
0
 /// <summary>
 /// Invoked when this page is about to be displayed in a Frame.
 /// </summary>
 /// <param name="e">Event data that describes how this page was reached.  The Parameter
 /// property is typically used to configure the page.</param>
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     // register for NetworkOperatorEvents to handle notifications for this network account
     foreach (var cur in BackgroundTaskRegistration.AllTasks)
     {
         if (cur.Value.Name == "MobileOperatorNotificationHandler")
         {
             currentHandler       = new BackgroundTaskCompletedEventHandler(OnCompleted);
             cur.Value.Completed += currentHandler;
         }
     }
     MakeTetheringManagerAvailable();
     // Update UI to reflect tethering state
     UpdateUIWithTetheringState();
 }
Example #7
0
 /// <summary>
 /// Invoked when this page is about to be displayed in a Frame.
 /// </summary>
 /// <param name="e">Event data that describes how this page was reached.  The Parameter
 /// property is typically used to configure the page.</param>
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     // register for NetworkOperatorEvents to handle notifications for this network account
     foreach (var cur in BackgroundTaskRegistration.AllTasks)
     {
         if (cur.Value.Name == "MobileOperatorNotificationHandler")
         {                
             currentHandler = new BackgroundTaskCompletedEventHandler(OnCompleted);
             cur.Value.Completed += currentHandler;
         }
     }
     MakeTetheringManagerAvailable();
     // Update UI to reflect tethering state
     UpdateUIWithTetheringState();
 }
        public static bool UnRegisterBackgroundTaskEventHandlers(BackgroundTaskCompletedEventHandler complete, BackgroundTaskProgressEventHandler progress)
        {
            System.Diagnostics.Debug.WriteLine("UnRegisterBackgroundTaskEventHandlers");

            IBackgroundTaskRegistration registeredTask = GetBackgroundTask(BackgroundTaskName);
            if (registeredTask != null)
            {
                if (complete != null)
                {
                    registeredTask.Completed -= complete;
                }

                if (progress != null)
                {
                    registeredTask.Progress -= progress;
                }

                return true;
            }

            // background task was not found
            return false;
        }
        public static bool RegisterBackgroundTaskEventHandlers(BackgroundTaskCompletedEventHandler complete, BackgroundTaskProgressEventHandler progress)
        {
            System.Diagnostics.Debug.WriteLine("RegisterBackgroundTaskEventHandlers");

            IBackgroundTaskRegistration registeredTask = GetBackgroundTask(BackgroundTaskName);
            if (registeredTask != null)
            {
                if (complete != null)
                {
                    registeredTask.Completed += complete;
                }

                if (progress != null)
                {
                    registeredTask.Progress += progress;
                }

                // we had the background task running already, thus re-using it
                return true;
            }

            return false;
        }
Example #10
0
        public static bool UnRegisterBackgroundTaskEventHandlers(BackgroundTaskCompletedEventHandler complete, BackgroundTaskProgressEventHandler progress)
        {
            System.Diagnostics.Debug.WriteLine("UnRegisterBackgroundTaskEventHandlers");

            IBackgroundTaskRegistration registeredTask = GetBackgroundTask(HeartbeatMonitorBackgroundTaskName);

            if (registeredTask != null)
            {
                if (complete != null)
                {
                    registeredTask.Completed -= complete;
                }

                if (progress != null)
                {
                    registeredTask.Progress -= progress;
                }

                return(true);
            }

            // background task was not found
            return(false);
        }
Example #11
0
        /// <summary>
        /// Registers background task
        /// </summary>
        /// <returns></returns>
        public static bool RegisterBackgroundTaskEventHandlers(BackgroundTaskCompletedEventHandler complete, BackgroundTaskProgressEventHandler progress)
        {
            System.Diagnostics.Debug.WriteLine("RegisterBackgroundTaskEventHandlers");

            IBackgroundTaskRegistration registeredTask = GetBackgroundTask(HeartbeatMonitorBackgroundTaskName);

            if (registeredTask != null)
            {
                if (complete != null)
                {
                    registeredTask.Completed += complete;
                }

                if (progress != null)
                {
                    registeredTask.Progress += progress;
                }

                // we had the background task running already, thus re-using it
                return(true);
            }

            return(false);
        }
Example #12
0
        private async void RegisterBackgroundTask()
        {
            UnregisterBackgroundTask();

            try
            {
                BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();
                Debug.WriteLine("BackgroundAccessStatus: " + status);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }

            // A background task can be registered even if lock screen access was denied.
            BackgroundTaskBuilder builder = new BackgroundTaskBuilder();
            builder.Name = taskName;
            builder.TaskEntryPoint = "QuestionsBackgroundTasks.TimerTask";
            builder.SetTrigger(new TimeTrigger(15, false));
            BackgroundTaskRegistration task = builder.Register();

            taskCompletedHandler = new BackgroundTaskCompletedEventHandler(OnTaskCompleted);
            task.Completed += OnTaskCompleted;
        }
Example #13
0
 public static void RegisterBackgroundTask(String taskEntryPoint, String name, IBackgroundTrigger trigger, IBackgroundCondition condition,
     BackgroundTaskCompletedEventHandler completeHandler
     )
 {
     
         var builder = new BackgroundTaskBuilder();
     builder.Name = name;
     builder.TaskEntryPoint = taskEntryPoint;
     builder.SetTrigger(trigger);
     if (condition != null)
     {
         builder.AddCondition(condition);
         builder.CancelOnConditionLoss = true;
     }
     BackgroundTaskRegistration task = builder.Register();
     if (completeHandler != null)
     {
         task.Completed += completeHandler;
     }
 }
Example #14
0
        internal async Task <BackgroundTaskRegistration> RegisterOutOfProcessBackgroundTask(string taskName, string taskEntryPoint, IBackgroundTrigger trigger, IBackgroundCondition condition = null, BackgroundTaskCompletedEventHandler taskCompleted = null)
        {
            if (IsDisposing)
            {
                return(null);
            }
            BackgroundExecutionManager.RemoveAccess();
            await BackgroundExecutionManager.RequestAccessAsync();

            var builder = new BackgroundTaskBuilder
            {
                Name = taskName, TaskEntryPoint = taskEntryPoint
            };

            builder.SetTrigger(trigger);
            if (condition != null)
            {
                builder.AddCondition(condition);
            }
            var task = builder.Register();

            if (taskCompleted != null)
            {
                task.Completed += taskCompleted;
            }
            return(task);
        }
Example #15
0
 public void AttachProgressAndCompletedHandlers(BackgroundTaskProgressEventHandler DelegateOnProgress, BackgroundTaskCompletedEventHandler DelegateOnComplete)
 {
     TaskRegistration.Progress  += DelegateOnProgress;
     TaskRegistration.Completed += DelegateOnComplete;
 }
Example #16
0
 public static void RemoveTaskCompletedHandler(
     BackgroundTaskCompletedEventHandler handler)
 {
     TaskRegistration.Completed -= handler;
 }