2016-04-27 29 views
-2

バックグラウンドの場所とフェッチモードが有効なアプリがあります。 ユーザーの場所を取得し、サーバーに送信し、結果を読み取り(JSON)、ローカル通知を送信します。 このプロセスは、iPhone 4Sで15秒、60秒、180秒ごとにテストされています。iOSアプリがバックグラウンドで実行中にフリーズする

ここで問題が発生します。

アプリがバックグラウンドで実行されると、約3分後にフリーズし、サーバーとの通信を停止します。私はXcodeから、デバッグナビゲータでそれがわかります。メモリは割り当てられていますが、CPUとエネルギーへの影響はゼロです。 この問題は、Youtubeのような重いアプリを開くことを繰り返すことができます:この場合、アプリは数秒後にフリーズします。 ほとんどの場合、iOS自体がアプリをフリーズします。 私の質問です:このフリーズを防ぐか、または再開せずにアプリの解凍を行う方法はありますか?

+0

を確認することができますあなたの場所マネージャ

if ([self.locationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) { [self.locationManager setAllowsBackgroundLocationUpdates:YES]; } 

セットsetAllowsBackgroundLocationUpdatesプロパティこのコードを使用するあなたはすでに、位置更新バックグラウンドモードを選択していますアプリは「アンフリーズ」され、ユーザーが自分の位置を変更すると次のようになります:)場所の代理人は、距離fあなたが指定したilter :)ロケーション更新デリゲートでは、NSURLSessionとセッションマネージャを使用してサーバと通信できます。あなたのアプリケーションの頻繁な呼び出しを必要とする場合は、最も正確なフィルタに距離を設定します。場所を使用することは、あなたのアプリがユーザーのバッテリーを消耗させる可能性があることを常に忘れています:) –

答えて

0

plzはあなたも背景remming時間に

NSLog(@"%f",[UIApplication sharedApplication].backgroundTimeRemaining); 
関連する問題