我需要每隔30分钟以1分钟的间隔执行一个方法。 30分钟后,我想在接下来的30分钟内使用应用程序。
我尝试使用UIBackgroundTaskIdentifier API,它允许我执行代码的时间不超过180秒。
我不想使用静音远程通知。
使用NSTimer和NSRunLoop我已经实现了这一点,但我想知道当我提交时苹果会拒绝我的应用程序。
请帮帮我们。
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
NSTimer *loop = [NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(insideLoop) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:loop forMode:NSRunLoopCommonModes];
}
-(void)insideLoop {
NSLog(@"insideLoop");
}
答案 0 :(得分:0)
是的,如果您这样做,Apple会拒绝您的应用。
我也想办法让应用程序无限期地在后台保持清醒,但它打破了Apple的规则,并通过用户的电池进行咀嚼。
答案 1 :(得分:0)
因此,您无法通过这种特殊方法获得成功。
当设备发生特定事件(如位置更改)时,可以选择触发代码。背景活动的可用选项可以阅读here,但正如我所说,您在这里所获得的内容无法通过。