3

我想定期更新我的WP8應用程序的磁貼 - 不要每隔一兩個小時更新一次。但是,我不希望我的應用程序必須運行以執行此後臺任務(將查詢WAMS,並根據返回的結果更新WP8應用程序的磁貼)。我可以在沒有運行我的應用的情況下定期在WP8中運行後臺任務嗎?

這是可能的,或做後臺任務(我發現本教程如何創建一個: http://thesociablegeek.com/windows-8/livetiles/modifying-live-tiles-in-a-background-process/)要求託管它們的應用程序正在運行?

IOW,我基本需要的是類似於Windows服務,他託管的操作系統,而不是/我的特定應用程序。

+0

計劃任務是否在WP8上不可用? – Dhawalk

回答

4

這裏介紹瞭如何在Windows Phone 7或8使用所謂的後臺代理:
Background agents for Windows Phone
基本上你可以安排簡單的任務,每30分鐘要執行,甚至主要的應用程序沒有運行。這些任務有系統需求,例如WP7的內存上限約爲6 MB,WP8任務的內存約束爲11 MB,每個任務的運行時間爲25秒,可用的API有限。

+0

如何部署到Windows Phone商店?您可以將這些獨立但連接在一起的連體應用程序(連體雙胞胎?)應用程序捆綁在一起 - 「主」應用程序和後臺任務嗎?如果是這樣,怎麼樣?如果沒有,你如何確保用戶也下載後臺任務(當然,後臺任務「應用程序」/服務沒有單獨部署到WP8商店)。 –

+0

後臺任務是實際應用程序包的一部分,它不是雙人或第二個應用程序。它全部下載到一個包中。 –

4

我建議您將代碼更新邏輯編碼爲periodic task,然後將其配置爲在後臺運行。這樣,你不必維護你的應用程序在後臺運行。

希望這會有所幫助。

+0

看起來很有希望,但它說:「計劃任務和後臺代理允許應用程序在後臺執行代碼,即使應用程序未在前臺運行」這是否意味着應用程序必須由用戶在啓動期間啓動當前會話(因爲電話已打開)? IOW,應用程序必須暫停才能正常工作,或者如果用戶還沒有啓動我的應用程序,或者它已被邏輯刪除/ 86d,這些定期任務是否會運行?而且,在我的情況下同樣重要,因爲這些任務有限制:他們可以訪問WAMS - 在那裏查詢數據庫嗎? –

+0

粘土,Dhawalk提到的是正確的方法,並回答您的問題:週期任務是作爲WP8應用程序的單獨項目創建的,因此任務邏輯的運行實際上與主應用程序分離。 WAMS可以從週期性任務中訪問,而不是問題。唉,這種方法的一個侷限性是,一旦你聲明瞭定期任務的能力,它將在你的設置 - >應用程序 - >後臺任務模塊下顯示爲「後臺任務」。如果用戶關閉了您的應用,後臺代理中的代碼將永遠不會運行。 –

+0

通過「如果用戶關閉你的應用程序」,你的意思是「如果用戶卸載我的應用程序」?如果是這樣,那很好 - 在卸載應用程序後,後臺任務會比毫無價值。 –

相關問題