2017-05-29 20 views
1

我正在看網頁上的一些關於後臺任務和背景獲取的文檔。正確的後臺任務和後臺提取有什麼不同?

後臺任務是應用程序仍在運行時在後臺執行的任務。當應用程序處於後臺時,任務完成任務的時間有限,一旦完成後臺任務,任務也必須結束。

後臺提取是應用程序完全處於後臺或不活動狀態的位置,如果資源可用,該操作將安排在某個時間點執行。

這是我非常簡短的理解。

回答

1

是的,你的理解是對的!讓我更深入地解釋!

後臺任務是在後臺繼續工作的能力。

例如,如果您正在播放audio並且您按Home按鈕,則音頻可以在後臺繼續播放。位置相同!您可以在後臺不斷更新位置。這只是一個例子,還有更多類型在後臺工作。你可以說這種東西作爲背景任務。可以在後臺模式下繼續工作的任務,稱爲後臺任務。

您可以參考Apple doc瞭解您可以執行或允許iOS執行哪種背景任務。現在background fetch是完全不同的東西。如果您的應用程序在background or in inactive state中,則可以定期檢查新內容或執行操作。系統會在可能的情況下自動喚醒您的應用程序並執行某些操作。例如,你可以說facebook。 Facebook有時間表,它應該定期有新的數據,所以它可以使用後臺獲取從服務器獲取數據,而不管應用程序是否處於非活動狀態!因此,當用戶打開應用程序時,他/她可以獲得最佳用戶體驗,因爲內容已經由background fetch下載!

您可以參考Apple doc進行背景獲取!它指出,

需要定期檢查新內容的應用程序可以要求系統將其喚醒,以便他們可以啓動該內容的提取操作。要支持此模式,請在Xcode項目的Capabilities選項卡的Background模式部分中啓用Background fetch選項。 (您也可以通過在應用程序的Info.plist文件中包含具有獲取值的UIBackgroundModes項來啓用此支持。)啓用此模式並不能保證系統會隨時爲您的應用程序提供後臺提取。系統必須平衡您的應用程序的需求,以獲取其他應用程序和系統本身的需求。在評估這些信息後,系統會在有很好機會的情況下爲應用程序提供時間。

+0

如果我使用Xamarin表單,並使用計時器來安排數據接收,而應用程序仍處於活動狀態,但在後臺。這會類似於後臺任務嗎? – LittleFunny

+0

我對「Xamarin」沒有太多的想法,但是你可以說它是一種背景任務! – Lion

+0

沒問題......你解釋清楚,謝謝。 – LittleFunny