当应用程序进入后台时如何运行 NSThread
当应用程序处于后台时,我需要控制设备的音量,因此我使用以下代码
- (void)applicationDidEnterBackground:(UIApplication *)application
{
back=1;
NSLog(@"Enter in the back");
float v=1.0f;
[NSThread detachNewThreadSelector:@selector(changeCounter) toTarget:self withObject:_viewController];
}
changeCounter 有无限循环。但是当我运行代码并将应用程序发送到后台时。循环仅运行一次?
I need to control the volume of device when app is in background so for this i use following code
- (void)applicationDidEnterBackground:(UIApplication *)application
{
back=1;
NSLog(@"Enter in the back");
float v=1.0f;
[NSThread detachNewThreadSelector:@selector(changeCounter) toTarget:self withObject:_viewController];
}
changeCounter has infinite loop.But when i run the code and send the app to back.loop runs only for one time?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要从 UIApplication 请求后台任务使用
beginBackgroundTaskWithExpirationHandler
。 应用程序编程指南 (请参阅后台中的“完成有限长度任务”部分)。You need to request a background task from the UIApplication using
beginBackgroundTaskWithExpirationHandler
. There are examples in the Application Programming Guide (See the Completing a Finite-Length Task in the Background section).