跳至内容
wiki
用户工具
登录
站点工具
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
最近更改
媒体管理器
网站地图
您的足迹:
分享:技术:ios:让ios程序一直后台运行
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 让ios程序一直后台运行 ====== 选择项目->targets->项目->info中添加 <code> Required background modes Array (1 item) Item 0 String App registers for location updates </code> .h文件 <code> @property (nonatomic, strong) NSTimer *_updateTimer; @property (nonatomic) UIBackgroundTaskIdentifier backgroundTask; </code> .m文件 <code> //响应后台 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; #pragma mark-用定时器控制后台运行 //用定时器控制后台运行 -(void)applicationDidEnterBackground:(NSNotificationCenter *)notication{ NSLog(@"程序进入后台!"); UIApplication* app = [UIApplication sharedApplication]; self.backgroundTask = [app beginBackgroundTaskWithExpirationHandler:^{ NSLog(@"applicationD in Background"); }]; //加入定时器,用来控制后台运行时间 self._updateTimer = [NSTimer scheduledTimerWithTimeInterval:60*60*3 target:self selector:@selector(stopUpdate) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:self._updateTimer forMode:NSRunLoopCommonModes]; } //时间到,停止后台运行定位 -(void)stopUpdate{ NSLog(@"时间到,停止后台运行定位!"); [self._updateTimer invalidate]; self._updateTimer = nil; if (self.backgroundTask != UIBackgroundTaskInvalid) { [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask]; self.backgroundTask = UIBackgroundTaskInvalid; } } </code> 参考帖子:http://www.cocoachina.com/bbs/read.php?tid=174389 我自己尝试下来,如果配置App registers for location updates,程序进入后台之后可以获取地理位置信息,但是退出后头上会提示用户["record"正在使用您的位置信息];如果配置App plays audio or streams audio/video using AirPlay,意思是播放音乐,程序虽然没有挂掉,但是进入后台之后就不能使用位置信息了。 而且还有一个问题,这个软件上传到APP STORE后,不一定会审核通过。
分享/技术/ios/让ios程序一直后台运行.txt
· 最后更改: 2016/03/30 10:57 由
gxx
页面工具
显示页面
修订记录
反向链接
回到顶部