我没有使用任何特殊的背景模式。我创建了这个简单的项目:
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self performSelector:@selector(callservice) withObject:nil afterDelay:5];
}
-(void) callservice
{
NSURLRequest * urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
if (error == nil)
{
// Parse data here
}
[self performSelector:@selector(callservice) withObject:nil afterDelay:5];
}
@end
当我按下" Home Button" ,该应用程序转到后台。此时,我打开了Charles跟踪请求,我注意到该应用仍然会调用" www.google.com"每5秒钟。 (我知道在呼叫服务方法的最后我再次呼叫performselector:withobject:afterdelay
,但我认为去后台会停止它,因为我没有使用任何后台模式。)我等了10分钟而应用程序仍然提出请求。
从那以后,我想在按下" Home"在模拟器中,应用程序仍在使用Xcode运行时清醒。所以我从Xcode停止了应用程序并直接从模拟器运行它。请求仍然存在。
为什么会这样? performselector:withobject:afterdelay
每隔5秒唤醒应用程序一次?
iOS&#34 ;?按下" Home"?
谢谢!