2016-01-31 50 views
0

我得到了一個後臺任務,下載了幾個JSON數據文件,當我使用Visual Studio調用它時,它完美地工作。當在啓動時使用UserPresent觸發器調用後臺任務時,它會被取消(ExecutionTimeExceeded。)後臺任務取消(ExecutionTimeExceeded)

有什麼我可以做的事情來運行後臺任務,沒有任何限制?

+0

你知道你的任務需要多長時間嗎?完成時,你是否在推遲時稱'完成'? –

+0

@ PeterTorr-MSFT誠實地完成任務需要不到三秒的時間。但是在啓動時,當所有程序都啓動了三個GET請求時,它需要更長的時間並且任務被取消。它讀取JSON文件,發出一些請求,解析它們並更新文件。就這樣。 – Kenny

+0

你完成延期嗎? –

回答

1

可能不會,時間限制是依賴於觸發類型,並且作爲MSDN says它可以改變爲30秒至10分鐘:

CPU配額:背景任務由掛鐘的使用量的限制他們根據觸發類型獲得時間。大多數觸發器的時鐘使用時間限制爲30秒,而某些觸發器最多可以運行10分鐘以完成密集型任務。後臺任務應該是輕量級的,以節省電池壽命併爲前臺應用程序提供更好的用戶體驗。請參閱使用後臺任務爲應用程序支持應用於後臺任務的資源約束。

backgroundtask應該是一個輕量級的代碼 - 也許你可以將文件下載過程重定向到後臺傳輸服務,並在主應用程序中做一些繁重的工作。您也可以嘗試使用MaintenanceTrigger,此限制可能會較低,但一旦手機連接到AC就會觸發。

+0

我明白了,謝謝你的鏈接。有沒有辦法在啓動時在前臺啓動應用程序呢?這是一個桌面應用程序,我希望它在我使用電池時運行。 – Kenny

+0

@MiguelRipoll也許你可以用timetrigger顯示吐司,所以用戶將會啓動你的應用程序。據我所知,沒有用戶交互的觸發器無法運行你的應用程序,這是非常合理的。 – Romasz

+0

謝謝,我想我會在雲上運行一些代碼。這樣我就可以節省電池並提高性能:P – Kenny