2011-06-21 12 views
0

ASIHTTPリクエストを使用してアップロードキューを実行しています。ユーザーがホーム画面を押してアプリがバックグラウンドに入ると、この操作を続行します。ドキュメントから、私は新しいタスクをどのように呼び出すかを知ることができますが、バックグラウンドで実行するために呼び出すことができますが、私はすでに実行中のタスクを継続するフラグをどのように見えるか分かりません。iOS4のバックグラウンドで長時間実行され続けるプロセス

答えて

2

この例では、4.0より前の互換性のために括弧で囲まれている:

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; 
      } 
     }); 
    }]; 
} 

// start HTTP request … 

あなたのプロセスを完了するとき、あなたはアプリが UIBackgroundTaskIdentifier __block backgroundTaskIdentifierを追加してみてください。また

+0

を知っているようにendBackgroundTask:を呼び出す必要があります。このブロックの前に :) – huesforalice

関連する問題