NStimer 後臺掛起
iOS為了讓裝置儘量省電,減少不必要的開銷,保持系統流暢,因而對後臺機制採用墓碑式的“假後臺”。除了系統官方極少數程式可以真後臺,一般開發者開發出來的應用程式後臺受到以下限制:
1.使用者按Home之後,App轉入後臺進行執行,此時擁有180s後臺時間(iOS7)或者600s(iOS6)執行時間可以處理後臺操作
2.當180S或者600S時間過去之後,可以告知系統未完成任務,需要申請繼續完成,系統批准申請之後,可以繼續執行,但總時間不會超過10分鐘。
3.當10分鐘時間到之後,無論怎麼向系統申請繼續後臺,系統會強制掛起App,掛起所有後臺操作、執行緒,直到使用者再次點選App之後才會繼續執行。
專案中我們需要定時器在後臺持續執行一段時間,以保證我們的app正確執行,我們需要如下步驟
步驟一:
將plist檔案中加入Required background modes
App registers for location updates
步驟二:
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
UIApplication* app = [UIApplication sharedApplication];
__block UIBackgroundTaskIdentifier bgTask;
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
if (bgTask != UIBackgroundTaskInvalid)
{
bgTask = UIBackgroundTaskInvalid;
}
});
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
if (bgTask != UIBackgroundTaskInvalid)
{
bgTask = UIBackgroundTaskInvalid;
}
});
});
}
相關文章
- Linux nohup:後臺不掛起命令(後臺執行命令)Linux
- PostgreSQL 原始碼解讀(157)- 後臺程式#9(同步複製主庫掛起分析)SQL原始碼
- [外掛擴充套件]書架外掛(新外掛後臺)套件
- NSTimer使用詳解
- Laravel admin 後臺管理外掛的使用Laravel
- OneThink後臺增刪改查外掛
- [外掛擴充套件]自己寫的外掛。怎麼後臺?套件
- [外掛擴充套件]工作時間軸(新外掛後臺)套件
- [外掛擴充套件]OneThink後臺增刪改查外掛套件
- [外掛擴充套件]帶後臺管理 和前臺顯示 友情連結 外掛套件
- PbootCMS後臺登陸密碼忘記/找回後臺登入密碼外掛boot密碼
- [外掛擴充套件]後臺編輯器0.2套件
- Laravel Filament 後臺皮膚,有用的人嗎?一起?Laravel
- PbootCMS後臺登陸密碼忘記/找回密碼後臺登入密碼外掛boot密碼
- 老生常談之NSProxy和NSTimer
- NSTimer的八種建立方式
- GCD計時器替換NSTimerGC
- [提問交流]onethink 快速建立外掛後 後臺編輯資料時提示外掛不存在
- shell:nohup (在系統後臺不掛起地執行命令,退出終端不會影響程式的執行)
- [外掛擴充套件]OneThink後臺自制主題,BigMan套件
- [BUG反饋]OneThink 1.1後臺擴充套件外掛列表中,安裝外掛後作者URL無效套件
- iOS 關於NSTimer的迴圈引用iOS
- kotlin協程的掛起suspendKotlin
- [外掛擴充套件]仿Amezu UI後臺主題色套件UI
- 諮詢_輪播圖外掛是否可以在後臺新增?
- 修改公司網站 外掛,如何在公司網站後臺安裝和管理外掛網站
- [提問交流]自定義外掛後,需要後臺列表,但是記錄不能列出來
- iOS如何安全而又優雅的使用NSTimeriOS
- Vue+element搭建後臺管理系統-二、安裝外掛Vue
- 外掛後臺表單無法按照所寫規則排序排序
- NSTimer迴圈引用的幾種解決方案
- 7.6 實現程式掛起與恢復
- Linux 系統程序掛起與恢復Linux
- 3.5 掛起和恢復資料庫資料庫
- [-Flutter外掛篇 1-] 從自定義外掛開始說起Flutter
- Linux基礎命令---忽略掛起訊號nohupLinux
- 移動應用後臺不是技術專屬,運營也該用到飛起
- 微信tocken後臺後臺儲存方法