1

私のアプリは、バックグラウンドの位置の更新を登録します(重要な変更ではありません)。CoreLocationのバックグラウンドアップデートを停止する

その部分はうまくいきます。私はちょうど停止するのアプリは、バックグラウンドで60分後に更新します。私が今やっていることは、私のCLLocationManagerデリゲートでstopUpdatingLocationと呼ぶことです。これは実際にはバックグラウンド位置情報の更新を受けたから私のアプリを停止、またはそれますが、単にそれらを無視するかどうかどう

はしかし、私はわからないています。理想的には、私は、ユーザーの活動後のわずかな時間を除いて、私のアプリがバッテリーの放電を起こさないようにしたいと考えています。

アップルのマニュアルは、この1つで私にサークルを送信する傾向があります。 「バックグラウンドでコードを実行する」が答えを漏らそうとしていると思うと、「Location Awareness Programming Guide」に案内されます。その質問が具体的になる直前に、私はバックグラウンドでコードを実行しています。 :)イベントの配信を無効に

+0

注:重要な変更箇所の更新には関心がありません。都市や郊外でこれを広範囲にテストしてきましたが、時には3kmの移動後も0回の更新があります。私は高品質な位置情報を求めていますが、アプリの使用中の限られた期間は、その後1時間までです。私はちょうど '' '' stopUpdatingLocation'''がGPS/wifiラジオ三角測量/三畳込みを実際に止めるかどうかを確認したいのです。ありがとう! :) –

答えて

1

私はあなたのアプリケーションは、このオーバーコントロールを持っているかどうかわからないんだけど、stopUpdatingLocationためのドキュメントは、以下を述べない...

は、受信機に無効にするオプションを提供しますそれは、あなたのアプリがバックグラウンドの位置データを要求するだけであるべきであり、あなたはGPS受信機を停止することを要求することをお勧め適切なハードウェア(およびそれによって省電力)は、クライアントが位置データを必要としない

は適切に無効になりハー私はそれがあなたが探していたと思う力で節約するために壊す。私が提案することができますどのような

あなたは設定でパワーログを有効にすることである - >デベロッパー、そして、あなたはGPSが無効になっていると思うポイントに時間かそこらのためにアプリを実行し、別の時間のために実行し、その後比較インストゥルメントの消費電力。これははるかに明確な画像を提供する必要があります。

+0

ポインタありがとうございます。私はそのショットを与えるでしょう。私のアプリがうまく動作しているかどうかを判断するにはしばらく時間がかかりますが、時間を投資する価値があります。私はちょうど重要なことについてAppleのドキュメントに明確な答えがあることを望みます。彼らは本当に人々を有意義な変化に導くように努力していますが、バッテリーから逃れようとしていることを知りたいアプリがたくさんあります。 –

0

stopUpdatingLocationを電話すると、実際にはGPSなどが停止しますが、この電話をのCLLocationManager delegateに発信すると、決して呼び出されないことがあります。

この方法のみ著しく異なる位置が利用可能である(アクティブ距離フィルタに応じて)たびより正確な位置または実行されることに留意してください。デバイスがまったく動かず、精度に影響を与える状況も変わらない場合は、何時間も呼び出されないかもしれません(私は数分間それを確認しました)。

フォアグラウンドでしか動作しないアプリの場合は、NSTimerを60分使用できますが、バックグラウンドで実行されるアプリでは、これまでに見つかった解決策に最も近いものが予定されています。UILocalNotificationです。しかし、それでも、ユーザーは、アプリを再起動してGPSをオフにする前に、アラートを確認する必要があります。

おそらくbeginBackgroundTaskWithExpirationHandler:がより良い解決策の鍵ですが、私はそれをまだ完全には理解していません。

関連する問題