ASIHTTP リクエストを使用してダウンロード キューを実行しています。ユーザーがホーム画面を押してアプリがバックグラウンドになったときに、この操作を続行したいと思います。ASIHTTP リクエストがバックグラウンドで実行できることはわかっていますが、ASIHTTP リクエストを実行するプロセスもバックグラウンドで実行する必要があります。
どうすればいいのですか?
StackOverflow でこの投稿を見ました: iOS4 の下でバックグラウンドで長時間実行されるプロセスを継続する
しかし、解決策は iOS4 にあります。iOS5以上でやりたいのですが..
与えられた解決策:
UIApplication *app = [UIApplication sharedApplication];
if ([app respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]) {
backgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
if (backgroundTaskIdentifier != UIBackgroundTaskInvalid)
{
// you took too long - clean up what you can, then …
[app endBackgroundTask:backgroundTaskIdentifier];
backgroundTaskIdentifier = UIBackgroundTaskInvalid;
}
});
}];
}
別の質問は、このコードをどこに置くべきかということです。
これに関するいくつかのガイダンスが必要です..