ios實現無限后台任務


需求

我們的app是使用心跳機制來保持用戶的登陸狀態,這樣才能收到服務器發來的消息和命令,但是當app進入后台以后大約3分鍾或者10分鍾之后app就會被系統掛起,用戶就會超時下線,這樣就必須保持app長時間的后台運行

原因

app一般有三種狀態前台運行中、進入后台以及掛起狀態,當我們按home鍵或者鎖屏鍵以后app進入后台運行,根據蘋果的官方解釋,蘋果允許app運行一小段時間在后台運行,做一些處理,大約是十分鍾左右的時間,十分鍾之后app被系統強行掛起,掛起所有的操作和線程,當用戶再點擊進入此app時才會啟動線程

方案

1、app內后台無線的播放音樂,Background Audio

2、后台不停的定位,Location Services

3、后台語音服務,voip

4、報刊雜志后台自動下載更新,Newsstand

.....

實現

我用的是后台定位,這是最簡單的方式了,經過測試一上午用戶都是在線的狀態,但是我的app是企業級的應用不需要上線,所以沒管審核的問題,此解決方案可能造成無法通過蘋果的審核

引入頭文件

#import <CoreLocation/CoreLocation.h>

在AppDelegate.m內添加變量

@property(nonatomic,strong)CLLocationManager * locationManager;

app啟動后創建實例,設置代理

self.locationManager = [[CLLocationManager alloc] init];

    self.locationManager.delegate =self;

app進入后台以后,持續定位

[self.locationManager startUpdatingLocation];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM