私たちのアプリでは、バックグラウンド フェッチを使用してユーザー データ (場所、接続など) を取得し、バックグラウンドで 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;
}
ありがとうございました!