iOS7之前疲牵,APP是偽后臺(tái)模式承二。iOS7后,APP擁有四種真后臺(tái)模式纲爸,無論是哪一種后臺(tái)機(jī)制亥鸠,均需要利用蘋果給予的相應(yīng)后臺(tái)接口實(shí)現(xiàn)。IOS7系統(tǒng)中,開發(fā)者可以靈活利用多種后臺(tái)接口(API)實(shí)現(xiàn)更加智能的應(yīng)用操作负蚊。
-
無后臺(tái)僅推送
第一種后臺(tái)方式為傳統(tǒng)的無后臺(tái)操作神妹,僅有蘋果推送機(jī)制,這種方式出現(xiàn)在iOS 3.x以下的大部分系統(tǒng)版本上家妆。這個(gè)方式下鸵荠,應(yīng)用在按下Home鍵后即會(huì)
關(guān)閉退出
,其數(shù)據(jù)通過蘋果搭建的推送服務(wù)器傳輸
伤极,并不需要應(yīng)用后臺(tái)運(yùn)行蛹找。這種方式 不太好的原因在于,每次推出后哨坪,重新進(jìn)入均需要重新加載
庸疾,雖然推送能夠統(tǒng)一解決數(shù)據(jù)和信息的傳輸,但遇到需要頻繁進(jìn)入應(yīng)用(如聊天APP)的時(shí)候便會(huì)顯得體驗(yàn)不好当编。 -
墓碑式
第二種方式為墓碑式的后臺(tái)機(jī)制届慈,這在iOS 4后被大量采用,也就是人們所說的
偽多任務(wù)
忿偷。這方式相比較第一種改進(jìn)的地方在于金顿,按下Home鍵至主界面后,應(yīng)用隨即進(jìn)入后臺(tái)
鲤桥,但其被凍結(jié)
串绩,并不能進(jìn)行任何操作。 -
智能調(diào)度后臺(tái)
第三種為系統(tǒng)智能調(diào)度的后臺(tái)芜壁,iOS 7新增的background fetch礁凡, 這個(gè)后臺(tái)接口在蘋果WWDC 2013上有提及,其會(huì)根據(jù)用戶行為
自動(dòng)調(diào)整
達(dá)到效率最優(yōu)
的后臺(tái)模式慧妄,能夠處理不是很有時(shí)效性
的信息獲取顷牌。例如一些社交、新聞?lì)惖膽?yīng)用的后臺(tái)信息更新塞淹,iOS系統(tǒng)便會(huì)根據(jù)應(yīng)用啟動(dòng)頻率窟蓝、時(shí)間和當(dāng)前網(wǎng)絡(luò)和電量``的狀況來智能分配
每個(gè)應(yīng)用的后臺(tái)獲取頻率和啟動(dòng)時(shí)長
。
由于擁有該接口的應(yīng)用的數(shù)據(jù)后臺(tái)刷新操作是統(tǒng)一調(diào)度
的饱普,因此系統(tǒng)可以在一個(gè)進(jìn)程里面獲得多個(gè)應(yīng)用的數(shù)據(jù)
运挫,類似統(tǒng)一的推送機(jī)制
,這樣就能夠最大限度地省電套耕。 不過這個(gè)方式也有一個(gè)缺點(diǎn)谁帕,那便是開發(fā)者不能設(shè)定數(shù)據(jù)具體什么時(shí)候更新
,因此這個(gè)后臺(tái)方式只能應(yīng)用在一些時(shí)效性和敏感度不高
的地方冯袍。 -
真后臺(tái)
第四種方式便是真后臺(tái)機(jī)制
匈挖,但iOS的真后臺(tái)與Android的后臺(tái)機(jī)制是不一樣的碾牌,為了兼顧系統(tǒng)體驗(yàn)和統(tǒng)一進(jìn)程管理,iOS在這上面加入了眾多的限制儡循。大致?lián)碛幸韵聨讉€(gè)后臺(tái)接口模式:** Background Audio**舶吗,這是
后臺(tái)的音頻
,這個(gè)很早之前便有择膝,也是iOS設(shè)備中用得最多的后臺(tái)應(yīng)用誓琼,調(diào)用這個(gè)接口可以實(shí)現(xiàn)后臺(tái)的音樂播放。Location Services肴捉,這是
后臺(tái)的定位
踊赠,系統(tǒng)會(huì)擁有統(tǒng)一頁面進(jìn)行管理。VoIP每庆,
后臺(tái)語音
服務(wù)筐带,類似Skype通話應(yīng)用需要調(diào)用,可進(jìn)行后臺(tái)的語音通話缤灵。Newsstand伦籍,報(bào)刊雜志后臺(tái)自動(dòng)下載更新,其能夠自動(dòng)實(shí)時(shí)更新腮出。
Background Task Completion帖鸦,這個(gè)接口早在iOS 4時(shí)候便擁有,其可以供任意類型的APP使用胚嘲,不過在
舊系統(tǒng)
中作儿,這個(gè)接口的后臺(tái)限制運(yùn)行時(shí)間僅為10分鐘
,意味著當(dāng)應(yīng)用退至后臺(tái)馋劈,其后臺(tái)運(yùn)行僅能持續(xù)10 分鐘便會(huì)轉(zhuǎn)至休眠狀態(tài)攻锰。iOS 7中對(duì)這個(gè)接口作出了改變, 原來的為連續(xù)10分鐘 妓雾,即不論你這10分鐘內(nèi)用戶是否關(guān)閉屏幕進(jìn)入休眠狀態(tài)惋啃,應(yīng)用仍然會(huì)在后臺(tái)等待10分鐘完結(jié)后推出指煎,而新的
改進(jìn)為 假如遇到關(guān)閉屏幕休眠
的情況,這后臺(tái)運(yùn)行的10分鐘便會(huì)跟隨一同休眠
吭敢,剩余的后臺(tái)時(shí)間
將會(huì)留待用戶再一次喚醒設(shè)備才計(jì)算
憨降。這樣后臺(tái)運(yùn)行的時(shí)間仍然為10分鐘钳榨,但并不連續(xù)
担巩,這樣做的優(yōu)點(diǎn)為省電
俩块。如現(xiàn)在有一些詞典應(yīng)用帶有后臺(tái)復(fù)制選詞功能,實(shí)際上其是利用了這個(gè)接口欢揖,如果用戶開啟詞典后并推出陶耍,即使屏幕關(guān)閉,但詞典仍然在后臺(tái)運(yùn)行浸颓,電量消耗還是比較大的物臂,在iOS 7上旺拉,這個(gè)問題可以得到解決产上。Remote Notification棵磷,這是本次較大的一個(gè)改進(jìn)接口,
以往
聊天類應(yīng)用接受推送后點(diǎn)進(jìn)去需要再收一次信息
晋涣,這情況在QQ仪媒、微信等應(yīng)用上最為明顯。不過擁 有了這個(gè)接口后谢鹊,這情況將不復(fù)存在算吩,以后推送
將能夠直接啟動(dòng)后臺(tái)任務(wù)
。值得注意的是remote notification支持silent notification
(靜默推送)佃扼,這樣dropbox這類同步應(yīng)用可以在后臺(tái)以最節(jié)能
的模式實(shí)時(shí)靜默同步了偎巢,類似布卡漫畫這種也可以推送
正在追的漫畫的新章節(jié)并在后臺(tái)靜默下載
,待到下載好
再給用戶發(fā)送一個(gè)本地推送
兼耀,用戶點(diǎn)開即看無需再聯(lián)網(wǎng)Background Transfer Service压昼,
后臺(tái)上傳下載
。iOS最接近傳統(tǒng)多任務(wù)的后臺(tái)接口瘤运,可供任意類型的app調(diào)用窍霞,無時(shí)間限制。應(yīng)用場景包括后臺(tái)上傳
和下載數(shù)據(jù)
拯坟,這使得游戲后臺(tái)更新數(shù)據(jù)包但金,后臺(tái)上傳視頻等等都成為可能,但是正如其名字郁季,它只能用于處理上傳下載
這種傳輸類的任務(wù)
冷溃,類似后臺(tái)剪切板監(jiān)控這種它就無能為力了。
可以在TARGETS中查找相關(guān)選項(xiàng)即可查找到background模式的相關(guān)設(shè)置,并且這些設(shè)置最后會(huì)在pilist文件中有體現(xiàn)...