2014-11-05 105 views
0

我有Windows Phone 8项目,我希望有一个后台取得响应NetworkStateChange系统触发器。Windows Phone 8中的后台任务

我发现这是问题:Windows Phone 8.1 Background Task - Can't Debug and won't fire,下载并重新实施了解决方案(http://1drv.ms/1qCPLMY),并有一点帮助,结果很好。

我做了这个简单的任务: using Windows.ApplicationModel.Background;

namespace FlexCheck.Tasks 
{ 

    public sealed class BackgroundTask : IBackgroundTask 
    { 
     BackgroundTaskDeferral _deferral = null; 

     public void Run(IBackgroundTaskInstance taskInstance) 
     { 
      _deferral = taskInstance.GetDeferral(); 
      _deferral.Complete(); 
     } 

    } 
} 

为了这个编译我需要目标是Windows Phone 8.1。但后来我无法从我的Windows 8项目中引用。

问题:我能以某种方式绕过这个吗?或者是否有可以在Windows Phone 8上使用的等效IBackgroundTask?

+0

是否有你的目标是WP8而不是WP8.1的原因? AFAIK所有带有WP8的设备都可以升级到8.1。 – 2014-11-05 10:02:54

+0

原因很简单:我们还没有时间将其提升到8.1。而且由于它是一个很大的应用程序,它不会在5分钟内完成一些任务:D – 2014-11-05 10:04:33

+2

我认为**你无法绕过这个。 Windows Phone 8具有[后台代理](http://msdn.microsoft.com/en-us/library/windows/apps/hh202941(v = vs.105).aspx),这似乎比后台任务更有用。 – 2014-11-05 10:19:19

回答

1

Windows Phone 8中的后台代理无法对事件做出反应。它只是一个运行在定时器上的代码片段,仅此而已。切换到WP 8.1是唯一的解决方案。您可以尝试Audio Background agent作为黑客攻击,并在代码中手动检查网络状态,但这是规则断路器,通常不会通过商店认证。