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