私は理想的にバックグラウンドで位置情報サービスを実行する必要があるiOSアプリを開発しています。私は重要な場所をテストしましたが、それは十分正確ではありません。正確な位置は完璧ですが、これはアプリを実行可能にするために電池寿命をあまりにも長く消費します。iOSのバックグラウンド位置の削減バッテリーの使用
このバッテリの問題を回避するために、私はNSTimer
をUIApplication:beginBackgroundTaskWithExpirationHandler:
の内部で使用する解決策を見つけたと考えました。これにより、位置がオンになった後すぐに再びオフになり、位置の更新がトリガーされ、backgroundTimeRemaining
がリセットされます。
ただし、このソリューションでは、場所が9分ごとに1秒間だけオンになっている場合でも、3〜4時間ごとに15%〜20%のバッテリが消費されます。この1つのタイマー以外のバックグラウンドでは、アプリは何も実行していません。私は、何も座っていないこととバッテリーを消費していることを確認するために背景を入力するときにすべてのビューを解放しようとしました。
この待機状態では、計測器の内部を調べて、アプリケーションがCPUの0.0%とメモリ14MBを使用していることがわかりました。私は、この点については、特にGPSを540秒ごとに1秒間実行すると、24時間365日に実行するのに比べて、バッテリ消費量を大幅に削減することができないため、この点で少し迷っています。
私が問題に貢献するかもしれない、次の質問に、コンパイルし始めました、と私は誰かが答えやアイデアを持って望んでいる...
このよう停止中のアプリを実行してい電話は何らかの低電力モードに入っていますか?
GPSの起動には多大な電力が必要ですか?
電源を切ってもGPSは一定期間稼働しますか?
@GregularExpressions - それは正しいと思います。私はGPSハードウェアが電源投入後に最初の2秒で何かをすることができるとは思わない。受信機は、その位置を計算するためにいくつかの衛星から完全なメッセージフレームを取得しなければならず、GPS信号の帯域幅/ビットレートは非常に低い(小さい低電力受信機は不可能である)。シャットダウンするように通知されたとしても、GPSシステムはおそらくオフになる前に1つの修正を取得するまで実行されます。 –
..そしてこれらの低電力GPSチップの受信機はとにかくゴミになっています。 –
あなたの問題を解決しましたか? – knagode