回覆列表
  • 1 # 使用者3452441498560

    看完文件了,更新一下。簡單來說,這玩意是對開發者友好,但對裝置不友好的(可能會偷偷摸摸地佔用流量和電量)。對使用者來說,如果你頻寬夠,對發熱不敏感的話,會得到更好的應用體驗。從 iOS 4 開始,應用就可以在退到後臺後,繼續執行一小段時間了(10 分鐘)。此外還可以把自己宣告為需要在後臺執行,就能不限時地運行了。不過限制為播放音樂、使用 GPS 等。值得一提的是,有的應用為了達到後臺不限時執行的目的,在後臺播放無聲的音樂(稽核不一定會被發現)。iOS 5 開始又多了一種型別:下載報刊雜誌。然後 iOS 7 則可以下載各種玩意和定時抓取。不過對於開發者來說,iOS 7 還有 2 個需要注意的區別:

    iOS 7 以前,應用進入後臺繼續執行時,如果使用者鎖屏了,那麼 iOS 會等待應用執行完,才進入睡眠狀態。而在 iOS 7 上,系統會很快進入睡眠狀態,那些後臺應用也就暫停了。如果收到事件被喚醒(例如定時事件、推送、位置更新等),後臺應用才能繼續執行一會。因為處理過程變成了斷斷續續的,因此下載時也要使用 NSURLSession 來處理(即下文中的 Background Transfer Service)。由於 App Switcher 的存在,應用即使在後臺,使用者仍然能看到它在退出前的快照。如果有什麼不可見人的東西(例如剛拍的豔照啦,勁爆的聊天內容啦,銀行卡密碼什麼的),就處理下介面來隱藏吧。順便再介紹下三個新東西:Background Fetch。可以設定應用在後臺至少隔多久時間就去抓取一下更新(注意是至少,不保證達到這個頻率)。以微博來舉例,如果使用者的微博被別人評論了,iOS 7 之前得讓微博的伺服器來推送一條通知,使用者接收到後,進入該條微博,等待載入該評論;而 iOS 7 上則可以讓使用者每隔一定時間(如一分鐘)查詢一下有沒有更新,發現有則下載更新的內容,然後傳送一條本地通知給使用者,使用者接收到後,進入該條微博,顯示在後臺下載好的評論內容。如果需要的話,連 timeline 都能給你提前更新了。很顯然,這種做法體驗更好,但更費流量和電池。Silent Remote Notification。iOS 7 之前的推送會直接彈出一個對話方塊,使用者確認後才會進入應用;而 iOS 7 上則可以不彈出對話方塊,而是直接通知應用去下載更新,等下完後再發送本地通知給使用者,這樣使用者進入應用後,就能直接看到更新的內容了。這種做法就比前者好些,不需要在後臺輪詢了。只是使用者如果對更新內容不感興趣,也會被強制下載。為了避免被濫用,這種推送有頻率限制(每小時幾次),所以推送 QQ、微信這類經常被刷屏的訊息肯定沒戲。Background Transfer Service。iOS 7 之前的應用可以在後臺繼續執行一段時間來下載,但如果因為各種原因而導致應用被退出了(被使用者殺掉,記憶體不足或超時被系統殺掉等),那麼下載是得不到保證的。iOS 7 的後臺傳輸服務則可以讓系統去下載,出錯或下完後通知並喚醒應用來處理。對使用者來說的好處就是,想離線快取影片時,可以讓優酷之類的應用在後臺下載,自己放點音樂看看漫畫,而不用傻傻地開著優酷等待下完。上傳當然也是支援的,基友再也不用擔心你沒空發小電影什麼的了。此外,1 和 2 裡提到的後臺下載,也都會用到 3。為了避免浪費流量,該服務只會在 WiFi 環境下才進行傳輸。需要特別注意的是:應用被以上三類喚醒時,只被給予幾秒鐘時間來處理更新。要總結的話,我預測下一代 iPhone 待機時間會減少,實際可用時間減少,但官方標稱的使用時間不變。

  • 中秋節和大豐收的關聯?
  • 30-35歲女性要如何提升職場競爭力?