註冊 Xamarin.iOS 應用程式以在背景執行
註冊背景許可權的個別工作適用於某些應用程式,但如果不斷呼叫應用程式來執行重要且長時間執行的工作,例如透過 GPS 取得使用者的指示,會發生什麼事? 這類應用程式應該改為註冊為已知的背景必要應用程式。
向 iOS 註冊應用程式訊號,表示應用程式應該獲得在背景執行工作所需的特殊許可權。
應用程式註冊類別
已註冊的應用程式可分為數個類別:
- 音訊 - 使用音訊內容的音樂播放機和其他應用程式可能會註冊,以繼續播放音訊,即使應用程式不再在前景。 如果此類別中的應用程式嘗試在背景播放音訊或下載以外的任何動作,iOS 將會終止它。
- VoIP - 語音傳輸因特網通訊協定 (VoIP) 應用程式會獲得授與音訊應用程式相同的許可權,以在背景中繼續處理音訊。 他們也可以視需要回應提供電源的 VoIP 服務,讓他們的連線保持運作。
- 外部配件和 藍牙 - 保留給需要與 藍牙 裝置和其他外部硬體配件通訊的應用程式,在這些類別下註冊可讓應用程式保持連線到硬體。
- 美基底線 - 一個目前 應用程式可以繼續同步處理背景中的內容。
- 位置 - 使用 GPS 或網路位置數據的應用程式可以在背景中傳送和接收位置更新。
- Fetch (iOS 7+) - 註冊背景擷取許可權的應用程式可以定期檢查提供者是否有新內容,並在使用者返回應用程式時向使用者呈現更新的內容。
- 遠端通知 (iOS 7+) - 應用程式可以註冊以接收來自提供者的通知,並使用通知在使用者開啟應用程式之前啟動更新。 通知可以以推播通知的形式出現,或選擇以無訊息方式喚醒應用程式。
您可以在應用程式的 Info.plist 中設定 [必要背景模式] 屬性,以註冊應用程式。 應用程式可以視需要在下列類別中註冊:
如需註冊應用程式以進行背景位置更新的逐步指南,請參閱 背景位置逐步解說。
應用程式不會在 Background 屬性中執行
可以在 Info.plist 中設定的另一個屬性是應用程式不會在背景執行,或UIApplicationExitsOnSuspend
屬性:
這與在 iOS 7+ 中將 [背景應用程式重新整理] 設定設定設為關閉完全相同的效果,不同之處在於它只能在開發人員端變更,而且適用於 iOS 4 和更新版本。 應用程式會在進入背景後立即暫停,且無法進行任何處理。
如果您的應用程式不是設計來處理背景處理,請使用此屬性,因為它有助於避免非預期的行為。
背景擷取和遠端通知
背景擷取和遠端通知是iOS 7中引進的特殊註冊類別。 這些類別可讓應用程式接收來自提供者的新內容,並在背景更新。 下一節會更詳細地探索擷取和遠端通知,並介紹位置感知作為在iOS 6背景更新應用程式的方法。