iOS は、アプリケーションがバックグラウンド モード (最小化) の場合でも最大 10 分でプロセスを実行できることがわかりました。これを回避して永久に実行するには、次のことが必要です。
新しいコンテンツを定期的にダウンロードして処理する必要があるアプリ
そして、それが NSURLSession API を使用してサーバーにリクエストを行うことです:
-(void)SendFiles{
...
NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(error == nil){
[self performSelector:@selector(SendFiles) withObject:nil afterDelay:3600.0];
}
}];
[dataTask resume];
}
アプリが最小化されている場合でもプロセスを実行するには、いくつかのタグを使用する必要があることを知っている人もいますが、API NSURLSession を使用している場合、このようなことは必要ありませんよね?
私のプロジェクトの場合、彼は私のサーバーで 1 時間ごとにそのような要求を行う必要があり、このために、ブロックの completionHandler 内にコードを追加しました。サーバ。
私の質問は: 10 分の時間は、3600 秒の遅延でセレクターに影響を与える可能性がありますか? アプリが完全にダウンしていて、サーバーにファイルを送信できない原因は何ですか?