在wwdc2013中 水果公司把ios7的中後台多工單獨開出來乙個session講述(session 204 what』s new with multitasking),其對後台多工的改動如下:
[list]
[*]1. 改變了後台任務的執行方式(background task)
[*]2. 增加了後台獲取(background fetch)
[*]3. 增加了推送喚醒(靜默推送,silent remote notifications)
[*]4. 增加了後台傳輸(nsurlsession的backgroundsession)
[/list]
開發者如果可以更好的利用這些特性,可以很大的提公升自己的應用體驗,比方說,使用後台獲取特性,在你開啟微博之前,最新的微博已經自動刷出來,不需要使用者再手動刷一次。
[size=large][b]知識點[/b][/size]
[img]
[size=large][b]用法[/b][/size]
[b]後台任務[/b]
後台任務是任務級別的配置,它的作用是當應用切換到後台後仍能保持一段執行時間以完成一些耗時的任務,通常這個時間比較短,不適宜做耗時大的操作,用法
1.啟動後台任務
2.結束後台任務
[b]後台獲取[/b]
後台獲取是應用級配置,其可以幫助應用在合適的時候觸發一次後台獲取,我們只能配置最快什麼時候做一次獲取,但是具體什麼時候做,這得看裝置的心情,不過水果公司說,其會根據使用者習慣做後台獲取,比方說你每天中午12:00使用這個應用,那麼它就會在11:50給你做一次後台獲取,是不是這麼神,有待檢驗。用法:
1.在info.list中為應用配置後台獲取
2.在系統啟動配置後台獲取的(最快)頻率
[b]遠端喚醒通知[/b]
在ios7中,對遠端通知進行了改造,新的遠端通知可以附帶上一些引數,這樣可以減少一些不必要的網路請求,提公升效能.它使裝置可以接收遠端推送後讓系統喚醒裝置和我們的後台應用,並先執行一段**來準備資料和ui,然後再提示使用者有推送。這時使用者如果解鎖裝置進入應用後將不會再有任何載入過程,新的內容將直接得到呈現。注意,因為,每一次遠端通知都會喚醒裝置,為了保證裝置續航,水果公司對傳送通知的頻率是有限制的,盡量少用。用法
1.為應用配置使用遠端推送
2.使用最新格式的notification
,
"content-id" : 42
}
[b]nsurlsession之backgroundsession[/b]
2.使用該session啟動乙個資料傳輸任務。
4.在具體的viewcontroller中實現nsurlsessiontask的delegate方法,根據任務完成或出錯的情況對ui進行更新:
- (void)urlsession:(nsurlsession *)session downloadtask:(nsurlsessiondownloadtask *)downloadtask
didfinishdownloadingtourl:(nsurl *)location;
- (void)urlsession:(nsurlsession *)session task:(nsurlsessiontask *)task
didcompletewitherror:(nserror *)error;
[size=large][b]實戰[/b][/size]
[img]
實現**:
mainviewcontroller.m
-(void)fetchimagewithcompletionhandler:(void (^)(uibackgroundfetchresult))completionhandler
backgroundfetchviewcontroller.m
所有**在這兒:[url]
iOS7程式後台執行
這次ios7對程式後台執行進行了加強,但是僅僅是加強而已,要想像android程式那樣自由當然就別想了,蘋果這麼做主要還是出於電池使用時間考慮,但是這次的加強對大部分程式基本夠用。在介紹之前,我們先回顧一下在ios7之前的後台執行相關的知識。在ios7之前 ios4之後 主要有三類的應用程式能夠後台...
iOS7程式後台執行
這次ios7對程式後台執行進行了加強,但是僅僅是加強而已,要想像android程式那樣自由當然就別想了,蘋果這麼做主要還是出於電池使用時間考慮,但是這次的加強對大部分程式基本夠用。在介紹之前,我們先回顧一下在ios7之前的後台執行相關的知識。在ios7之前 ios4之後 主要有三類的應用程式能夠後台...
iOS7程式後台執行
這次 ios7 對程式後台執行進行了加強,但是僅僅是加強而已,要想像 android 程式那樣自由當然就別想了,蘋果這麼做主要還是出於電池使用時間考慮,但是這次的加強對大部分程式基本夠用。在介紹之前,我們先回顧一下在 ios7 之前的後台執行相關的知識。在 ios7 之前 ios4 之後 主要有三類...