我得到了一個後臺任務,下載了幾個JSON數據文件,當我使用Visual Studio調用它時,它完美地工作。當在啓動時使用UserPresent觸發器調用後臺任務時,它會被取消(ExecutionTimeExceeded。)後臺任務取消(ExecutionTimeExceeded)
有什麼我可以做的事情來運行後臺任務,沒有任何限制?
我得到了一個後臺任務,下載了幾個JSON數據文件,當我使用Visual Studio調用它時,它完美地工作。當在啓動時使用UserPresent觸發器調用後臺任務時,它會被取消(ExecutionTimeExceeded。)後臺任務取消(ExecutionTimeExceeded)
有什麼我可以做的事情來運行後臺任務,沒有任何限制?
可能不會,時間限制是依賴於觸發類型,並且作爲MSDN says它可以改變爲30秒至10分鐘:
CPU配額:背景任務由掛鐘的使用量的限制他們根據觸發類型獲得時間。大多數觸發器的時鐘使用時間限制爲30秒,而某些觸發器最多可以運行10分鐘以完成密集型任務。後臺任務應該是輕量級的,以節省電池壽命併爲前臺應用程序提供更好的用戶體驗。請參閱使用後臺任務爲應用程序支持應用於後臺任務的資源約束。
backgroundtask應該是一個輕量級的代碼 - 也許你可以將文件下載過程重定向到後臺傳輸服務,並在主應用程序中做一些繁重的工作。您也可以嘗試使用MaintenanceTrigger,此限制可能會較低,但一旦手機連接到AC就會觸發。
你知道你的任務需要多長時間嗎?完成時,你是否在推遲時稱'完成'? –
@ PeterTorr-MSFT誠實地完成任務需要不到三秒的時間。但是在啓動時,當所有程序都啓動了三個GET請求時,它需要更長的時間並且任務被取消。它讀取JSON文件,發出一些請求,解析它們並更新文件。就這樣。 – Kenny
你完成延期嗎? –