每当应用程序处于后台状态时,我们需要调用webservices是否可行

时间:2014-07-19 07:13:50

标签: ios background-process

每当myapp处于后台状态时,我们都需要调用webservices。有可能吗?

我正在使用此委托方法,但没有调用。如果有人知道这个要求,请告诉我

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

    return YES;
}

(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
    // We will add content here soon.
}

2 个答案:

答案 0 :(得分:0)

您可以使用NSURLSessionConfiguration作为背景

    -(NSURLSession *)backgroundSession 
{
static NSURLSession *backgroundSession = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.shinobicontrols.BackgroundDownload.BackgroundSession"];
    backgroundSession = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];
});
return backgroundSession;
}

答案 1 :(得分:0)

您可以使用以下方式

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        [self beginBackgroundUpdateTask];
     //Call the Web Services
        [self endBackgroundUpdateTask];
    });



}



- (void) beginBackgroundUpdateTask
{
    self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        [self endBackgroundUpdateTask];
    }];
}

- (void) endBackgroundUpdateTask
{
    [[UIApplication sharedApplication] endBackgroundTask: self.backgroundTask];
    self.backgroundTask = UIBackgroundTaskInvalid;
}