【问题标题】:WP8.1 / Background Task for Raw Notify / Debugger OK -> NOT on DeviceWP8.1 / Raw Notify / Debugger OK的后台任务->不在设备上
【发布时间】:2014-12-01 07:38:42
【问题描述】:

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

我阅读了 MSDN 和其他 Internet 资源上的文档。

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

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

我做了什么:

为我的后台任务生成了一个项目

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

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

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

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

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

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

谢谢, 奥利弗

【问题讨论】:

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


【解决方案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

【讨论】:

  • 感谢您的回复。我真的没有找到那个 MSDN 条目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 2010-09-14
相关资源
最近更新 更多