1 時間ごとに実際に知りたいことは何ですか? 場所を正確に特定しようとしていますか、それとも電話が大きく移動したかどうかを特定しようとしていますか? startMonitoringSignificantLocationChanges
は、電話が「大きく」移動したときに通知します (これは通常、基地局の変更を意味します)。都市では、これは非常に頻繁に発生する可能性があります。startMonitoringForRegion:desiredAccuracy:
指定された半径の外に移動した場合にのみ通知します。
startMonitoringSignificantLocationChanges
かなり安いです。それは主にセルアンテナに依存しており、とにかく一般的にはオンになっています。1 時間に 1 回以上起動する場合は、いつでも処理をスキップして戻ることができます。しかし、特に地方では、1 時間に 1 回電話がかかってくるという保証はありません。
VoIP アプリの場合は、コードを実行するときに定期的な「チェックイン」間隔を登録できます。ただし、位置情報アプリではこれを行うことはできません。
Energy Diagnostics インストゥルメントを使用してコードをプロファイリングしましたか? 実際に食べる時間と力は何ですか?ラジオ、CPU、ディスクを噛んでいますか?
編集
アプリが終了しても、重要な変更は引き続き実行され、iPhone の上部ツールバーのパーセンテージの横に小さな方向矢印アイコンが残ります。ユーザーは、アプリを終了した後もアイコンが残っていると不満を漏らしています
アプリが終了した後、重要な変更に登録していた場合は、それらに応じて再起動されることを期待します. 解雇された場合に登録を解除したい場合は、メソッドに追加できstopMonitoring...
ますapplicationWillTerminate:
。これが呼び出される保証はありませんが、実行するのは良いことです。ユーザーが直接終了し、中断されていない場合に呼び出されると思います (テストしていません)。
繰り返しになりますが、セルがカバーされている限り、大幅な場所の変更はバッテリー寿命の点で非常に安価です。GPS を強制的にオンにしておくべきではありません。