0

在我们的应用程序中,我们使用后台获取来获取用户数据(位置、连接等),在后台运行 1 小时后,应用程序死机并且我们没有任何更新。为什么会发生这种情况以及我们如何在 1 小时后获得结果?

这是我们的代码:

-- AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
    ...
}

- (void)application: (UIApplication *)application performFetchWithCompletionHandler:(void(^) (UIBackgroundFetchResult))completionHandler {
    NSDictionary *fetchData = ...
    NSString * baseUrl = @"http://......";
    for(NSString *fetchKey in fetchData) {
        baseUrl = [baseUrl stringByAppendingString:[NSString stringWithFormat:@"?%@=%@", fetchKey, [fetchData objectForKey:fetchKey]]];
    }

    NSURLSession *session = [self backgroundSession];
    NSURL *url = [[NSURL alloc] initWithString:baseUrl];
    [[session downloadTaskWithURL:url] resume];

    ...
}

- (NSURLSession *)backgroundSession
{
    static NSURLSession *session = nil;
    NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.username.app"];
    sessionConfiguration.sessionSendsLaunchEvents = YES;
    sessionConfiguration.discretionary = YES;

    return session;
}

谢谢!

4

0 回答 0