首先朗兵,先來大概了解下蘋果的后臺運行的機制:一般說來告丢,所有程式進入背景后都還有5 秒的執(zhí)行緩沖時間岂膳,有些程序可以要求延長到10 分鐘(這些當然是由開發(fā)人員在設(shè)計與提交程序時決定和聲明)修肠;所以林说,當你按下Home 鍵后古程,前臺的程序就會退到后臺蔼卡,如果它有額外的背景執(zhí)行作業(yè),超過10 分鐘還是會被iOS 中止籍琳。
蘋果公司把app劃分為了三種:
保存現(xiàn)場菲宴。
上述講到的,也是我們絕大部分普通的app趋急。iOS支持的“多任務(wù)”喝峦。
即:按下Home鍵轉(zhuǎn)入多任務(wù)狀態(tài),保留在內(nèi)存中呜达,但只能系統(tǒng)允許的動作:比如GPS谣蠢,比如VoIP,比如Streaming Music等等(導(dǎo)航定位查近、網(wǎng)絡(luò)電話眉踱、音樂播放器)。真正的桌面級別的多任務(wù)霜威。
即:只有Safari/Mail才是真正的多任務(wù)谈喳,蘋果嫡系大都都不是。這個級別的app在后臺是沒有任何限制動作戈泼。(對于無限制動作的程序婿禽,一是會在用戶無察覺的情況下耗光電力,二是會有安全上面的問題)大猛。
廢話講完了扭倾,來重點了~
我們藍牙開發(fā)為了能使app在后臺運行時依舊保持與外設(shè)的連接,就需要在工程目錄下的 info.plist 文件中,
iOS9及其以前的做法:新建一行 Required background modes , 加入下面兩項挽绩。
App shares data using CoreBluetooth 和 App communicates using CoreBluetooth
iOS10的做法:直接添加 Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍牙膛壹?