2016-06-22 20 views
0

にNSURLConnectionを呼び出し、要求がクライアント側で呼ばれるが、その私のサーバ側になっていません。私は<code>applicationWillTerminate</code>方法に<code>NSURLConnection</code>経由<code>NSURLRequest</code>を送信しようとしているapplicationWillTerminate

- (void)applicationWillTerminate:(UIApplication *)application 
{ 
    [self sendRandomRequestToServer]; 
} 

私は、終了プロセスを殺すためにその

は私が右アム思いますか?

どうすればこの問題を解決できますか?

ありがとうございます!

UPDATE - 私は5秒を知って

Appleは私が実験してきたあなたを与えること -

私はメインスレッドで無限whileループを実行し、その2分のために実行を継続しようとしましたwillTerminateに!

また、afterDelay 0.1とdispatchAfter 0.1をwillTerminateで使用し、両方とも呼び出されなかったバックグラウンドスレッドのメソッドを呼び出しました。

だから私はあなたがapplicationWillTerminateからバックグラウンドでコードを実行するべきではありません「5秒」ルール

+0

'applicationWillTerminate'が実際に呼び出されたことを確認しましたか? – Code

+0

はい、私は、NSLogのapplicationWillTerminateで仕事をしました。 – ozd

+0

5秒ルールは、UIApplicationExitsOnSuspendをtrueに設定した場合にのみ適用されます。これにより、ユーザーが離れたときにアプリがすぐに終了するようになります。通常、アプリケーションの終了は、システムがリソースに必死である場合にのみ発生します。そのため、その時点で何らかの作業をブロックする必要はありません。アプリがバックグラウンドに移動したときにリクエストを行います。 – dgatwood

答えて

1

を信用していません。

  • メインスレッドがクリアされると、バックグラウンドスレッドがまだ動作していてもプロセスは終了します。

  • applicationWillTerminateは、メインスレッドで実行される最後のコードブロックです。つまり、dispatch_after(time, mainThread)は呼び出されません。

+0

ありがとう、しかし、これは私の答えではありません。私は私の答えを更新しました。 – ozd

+0

@ozd投稿編集をご覧ください。 – Code

関連する問題

 関連する問題