WP8.1 / Raw Notify / Debugger的后台任务OK - >不在设备上

时间:2014-12-01 07:38:43

标签: c# push-notification windows-phone-8.1 background-task

我尝试在wp8.1上实现原始通知的后台任务。

我阅读了有关MSDN和其他互联网资源的文档。

我的应用程序正在使用附加的调试器。如果应用程序位于前台,后台以及即使锁定屏幕已激活,也会处理原始消息。

但是,停止调试器会话并直接在设备上调用应用程序,如果应用程序仅在前台,则处理原始消息。 不在后台,不在锁定屏幕

我做了什么:

为我的后台任务生成项目

public void Run(IBackgroundTaskInstance taskInstance)

基于一些Microsoft示例

在应用清单文件中设置条目(声明,推送,设置实例)

使用以下代码创建后台任务并打开频道

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();

在启动时将断点放入后台类中,断点不活动。 如上所述设置推送通知触发器,断点被标记为活动。

!!通过接收原始消息来测试调试器中的应用程序未达到断点!我花了好几个小时,但没有找到任何解决方案。

因此,我只使用相关代码启动一个小型测试项目。将后台任务的触发器更改为系统触发器后,该任务在生命周期下拉列表中可用。任务类中的断点被击中。

切换回推送通知任务,未点击断点。原始后台任务在生命周期下拉列表中永远不可见!我认为这是主要问题。

希望任何人都有一个提示或想法。

谢谢, 奥利弗

1 个答案:

答案 0 :(得分:1)

从MSDN站点,使用PushNotificationTrigger时无法调试BackgroundTask。

  

使用“调试位置”工具栏中提供的“挂起”下拉菜单触发后台任务。此下拉列表显示可由Visual Studio激活的后台任务的名称。   为此,后台任务必须已经注册,并且仍然必须等待触发器。例如,如果使用一次性TimeTrigger注册后台任务并且该触发器已经触发,则通过Visual Studio启动任务将不起作用。

     

Note使用ControlChannelTrigger或PushNotificationTrigger的后台任务以及使用带有SmsReceived触发器类型的SystemTrigger的后台任务无法以这种方式激活。

https://msdn.microsoft.com/en-us/library/windows/apps/jj542415.aspx