0

NSURLConnection 非同期リクエストが戻ってきたときに、アプリが停止中、停止中、スリープ状態、または終了処理中の場合はどうなりますか?

非同期関数がプログラムデータが有効であると推定する前に、少なくとも「プログラムが終了しています」というフラグを保持する方がよいようです。

ありがとう。

4

1 に答える 1

0

iOS 4.0 以降では、ユーザーがアプリを閉じると、サスペンド状態になります。別の方法で行うように指示しない限り、デリゲート コールバックは、ユーザーがアプリを再度開くまで起動しません。コールバックにいくつかの NSLog を記述して、自分自身をテストできます。次に、テスト デバイスでアプリを実行し、接続が開始された直後にアプリを閉じてみます。しばらく待ってからアプリを再度開き (Xcode でまだ「実行中」)、デリゲート コールバックが呼び出されるのを確認します。

//somewhere just after you start the async connection
NSLog(@"Connection started..."); 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"Connection failed with error - %@",error);
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"D- Connection finished loading");
} 

ユーザーがアプリを閉じた後も接続を継続したい場合は、iOS アプリケーション プログラミング ガイドの「バックグラウンドでコードを実行する」をお読みください。

于 2011-09-06T06:59:49.193 に答える