2011-07-20 39 views
0

当app在后台时我需要控制设备的音量所以我使用下面的代码当应用程序转到后台时如何运行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有无限循环。但是当我运行代码并将应用程序发送回.loop只运行一次?

回答

2

您需要使用beginBackgroundTaskWithExpirationHandlerUIApplication请求后台任务。 Application Programming Guide中有示例(请参阅背景部分中的完成有限长度任务)。

+0

当应用程序在前台进行时,我该如何停止然后运行任务 –

+0

您需要跟踪从'beginBackground ...'调用返回的UIBackgroundTask和applicationDidBecome活动调用应用程序'endTask:'如果任务不是无效。 – Joe

+0

applicationDidBecome不在bgtask中调用直到循环结束 –

相关问题