2011-10-28 3 views
1

は今、私はアプリがバックグラウンドに移動したときのデータをサーバーに保存する私のアプリを転送するが、我々はちょうどバックグラウンドにアプリ後約5秒を持っているので、私は、デリゲート機能applicationDidEnterBackgroundに転送するネットワークを使用するかどうかを知る必要があります。iphoneアプリがバックグラウンドに移動しているときにサーバと通信できますか?

誰もがデリゲート機能applicationDidEnterBackgroundまたはapplicationWillResignActiveに転送するネットワークを使用できるかどうかを教えてもらえ。あるいはもっと良い方法がいくつかありますか?

答えて

1

ASIHTTPRequestライブラリを使用してみてください、アプリがバックグラウンドに入ることになるとき、あなたのダウンロードを一時停止することができますし、あなたが再びアクティブになっているときにそれを再開する。

3

私はあなたがバックグラウンドでありながらネットワークを継続して使用できることを前提としています。マルチタスクが設計されるタスクの1つは、アプリがバックグラウンドになっても写真のアップロードを続けることができます。

あなたは、接続を開始する前に、次を呼び出す必要があります:

- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler 

をし、接続が終了したときは、次を呼び出すことUIBackgroundTaskIdentifierを覚えている:

- (void)endBackgroundTask:(UIBackgroundTaskIdentifier)identifier 

我々は続行するには、このメソッドを使用アプリがバックグラウンドにある間に、ユーザーが購入したコンテンツをダウンロードします。もっと難しいのは、ExpirationHandlerです。つまり、接続の実行中にiOSがアプリを終了した場合の対処方法です。私たちの場合、私たちはダウンロードを中止し、アプリが再起動したときにダウンロードを再開します。

+0

はい、アップルの文書で言いました。 http://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/iphoneappprogrammingguide.pdfそして私はそれをして決定しようとします。ありがとうございました。 – Budweiser

+0

これがうまくいく場合は、この回答に合格とマークしてください。 – FelixLam

関連する問題