如何在应用程序处于挂起状态时在ios中运行后台服务
我不知道如何实现后台服务。但是在搜索互联网时 我看到了一些关于iOS7中引入的后台获取Api的教程。我无法理解执行的过程。请提供一些帮助`如何在应用程序处于挂起状态时在ios中运行后台服务,ios,iphone,ios7,cocos2d-iphone,Ios,Iphone,Ios7,Cocos2d Iphone,我不知道如何实现后台服务。但是在搜索互联网时 我看到了一些关于iOS7中引入的后台获取Api的教程。我无法理解执行的过程。请提供一些帮助` - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
return YES;
}
- (void) application:(UIApplication *)application
performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"hai");
[NSTimer scheduledTimerWithTimeInterval:0.30
target:self
selector:@selector(sampleTest)
userInfo:nil
repeats:NO];
completionHandler(UIBackgroundFetchResultNewData);
}
-(void)sampleTest
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:@"hai" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertView show];
}
仅在应用程序启动时呼叫,但此后30秒后我看不到任何警报,请使用以下代码:-
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication *app = [UIApplication sharedApplication];
UIBackgroundTaskIdentifier bgTask = 0;
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
}
及
您不会看到警报,这不是后台获取的目的。除非仅使用静默推送通知iOS 7,否则无法手动触发后台提取。iOS将在需要时调用此方法,您可以通过进入Xcode>Debug>simulate background fetch在模拟器中模拟它。我怀疑该警报是否会显示,因为您的应用程序不在前台。Xcode>Debug>Simulate background fetch如果我这样做,则该警报仅在模拟器启动时出现,但我看不到它处于活动状态。当应用程序处于活动状态时,它不会出现。这是一个后台提取…我想在应用程序运行时,甚至在后台状态下,在后台运行一些服务。该做什么。在运行时,很容易做到。你想叫什么就叫什么。在后台有点棘手,你的应用程序只能在带有苹果预设类型(如GPS、音频等)的后台运行。。或者,在iOS7中,您可以使用静默推送通知手动触发perormFetchWithCompletion多任务增强功能。但同样,这是由APNS+iOS限制的,以避免垃圾邮件。人们不希望应用程序在关闭后在不知道的情况下进行繁重的计算。。。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
}