Регистрация фоновой задачи в приложении Silverlight 8.1

Я работаю над приложением, которое использует BLE для связи с предметом, и мне нужно получить от него уведомления об этом. Я знаю о существовании GattCharacteristicNotificationTrigger но я не могу найти способ зарегистрировать фоновое задание в приложении Silverlight 8.1.

Любой отзыв?

Регистрация BackgroundTask довольно хорошо объясняется здесь в MSDN .

Вот простой пример, который запускается на TimeTrigger и показывает Toast, шаги (применимы как к приложениям RunTime, так и к Silverlight):

    1. BackgroungTask должен быть компонентом Windows Runtime (независимо от того, является ли ваше приложение Runtime или Silverlight). Чтобы добавить новый, щелкните правой кнопкой мыши на своем решении в окне обозревателя решений в VS, выберите « Добавить», затем « Новый проект» и выберите компонент Windows Runtime .

winRTcomponent

    2. Добавьте ссылку в свой основной проект.

AddReference

    3. Укажите объявления в файле Package.appxmanifest – вам нужно добавить задачу Backgorund , пометить Timer и указать точку входа для задачи. Точкой входа будет Namespace.yourTaskClass (который реализует IBackgroundTask ) – добавленный компонент Runtime Windows.

декларация

    4. Как выглядит ваш BackgroundTask? – скажем, мы хотим отправить из него тост (конечно, это может быть много чего):

 namespace myTask // the Namespace of my task { public sealed class FirstTask : IBackgroundTask // sealed - important { public void Run(IBackgroundTaskInstance taskInstance) { // simple example with a Toast, to enable this go to manifest file // and mark App as TastCapable - it won't work without this // The Task will start but there will be no Toast. ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); XmlNodeList textElements = toastXml.GetElementsByTagName("text"); textElements[0].AppendChild(toastXml.CreateTextNode("My first Task")); textElements[1].AppendChild(toastXml.CreateTextNode("I'm message from your background task!")); ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(toastXml)); } } } 

    5. Наконец, давайте зарегистрируем нашу BackgroundTask в главном проекте:

 private async void Button_Click(object sender, RoutedEventArgs e) { // Windows Phone app must call this to use trigger types (see MSDN) await BackgroundExecutionManager.RequestAccessAsync(); BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder { Name = "First Task", TaskEntryPoint = "myTask.FirstTask" }; taskBuilder.SetTrigger(new TimeTrigger(15, true)); BackgroundTaskRegistration myFirstTask = taskBuilder.Register(); } 

Компилировать, запускать и работать. Как вы можете видеть, задача должна начинаться через 15 минут (это время может меняться в зависимости от того, как ОС назначает задачу в определенные интервалы времени, поэтому она срабатывает между 15-30 минутами). Но как быстрее отлаживать задачу?

Существует простой способ – перейдите на панель инструментов « Отладка», и вы увидите выпадающие события жизненного цикла , выберите свою задачу из нее, и она будет открывать (иногда открывать / закрывать), чтобы обновить ее.

беги быстрее

Здесь вы можете скачать мой пример кода – WP8.1 Silverlight App.

Давайте будем гением компьютера.