2014-11-05 160 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作爲黑客攻擊,並在代碼中手動檢查網絡狀態,但這是規則斷路器,通常不會通過商店認證。