Я пытаюсь реализовать фоновую задачу для необработанного уведомления на wp8.1.
Я читал документацию в MSDN и других интернет-ресурсах.
Мое приложение работает с подключенным отладчиком. Необработанное сообщение обрабатывается, если приложение находится на переднем плане, в фоновом режиме и даже если активирован экран блокировки.
Но при остановке сеанса отладчика и вызове приложения непосредственно на устройстве необработанное сообщение обрабатывается только в том случае, если приложение находится на переднем плане. Не в фоновом режиме и не на экране блокировки.
Что я сделал:
Сгенерировал проект для моей фоновой задачи
public void Run(IBackgroundTaskInstance taskInstance)
на основе некоторых примеров Microsoft
Установите запись в файле манифеста приложения (объявление, push-уведомление, установка экземпляра)
Используя следующий код, создайте фоновую задачу и откройте канал
BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();
PushNotificationChannel newChannel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
string uri = newChannel.Uri;
rawChannel = newChannel;
rawChannel.PushNotificationReceived += OnPushNotificationReceived;
BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder();
PushNotificationTrigger trigger = new PushNotificationTrigger();
taskBuilder.SetTrigger(trigger);
taskBuilder.TaskEntryPoint = "BPRERAW.clsRaw";
taskBuilder.Name = "clsRaw";
BackgroundTaskRegistration task = taskBuilder.Register();
Помещая точку останова в фоновый класс, при запуске точка останова не активна. При установке триггера push-уведомления, как описано выше, точка останова помечается как активная.
!! Тестирование приложения в отладчике путем получения необработанного сообщения о том, что точка останова не достигнута!! Я трачу на это часы, но не нашел никакого решения.
Поэтому я начинаю небольшой тестовый проект только с соответствующим кодом. После изменения триггера для фоновой задачи на системный триггер задача стала доступна в раскрывающемся списке жизненного цикла. Сработала точка останова в классе задач.
При переключении обратно на задачу push-уведомлений точка останова не сработала. Необработанная фоновая задача никогда не отображается в раскрывающемся списке жизненного цикла! Я думаю, что это основная проблема.
Надеюсь, у кого-нибудь есть подсказка или идея.
Спасибо, Оливер.