iOS 5 用の位置情報ベースのアプリケーションを作成しています。アプリケーションは、CLLocationManager
位置情報の更新を受信するために を使用しています。
アプリケーションが開始されると、LocationManager が作成され、呼び出し[self.locationManager startUpdatingLocation];
が行われ、灰色の場所の矢印がステータスバーに表示されます。
アプリケーションがバックグラウンドに入るとき、私は呼び出しています
[self.locationManager stopUpdatingLocation];
[self.locationManager startMonitoringSignificantLocationChanges];
アプリがバックグラウンドにある間に重要な場所の変更を受け取りたいだけです。灰色の位置矢印は引き続き表示されます。
また、呼び出しているアプリケーションに終了ボタンがあります
[self.locationManager stopUpdatingLocation];
exit(0);
ユーザーが Exit-Button を押すと、アプリケーションが終了し、灰色の場所ボタンがステータスバーから消えます。今まですべて順調です。
ユーザーが Fast App Switcher を使用してアプリケーションを終了すると、アプリケーションが実行されていないにもかかわらず、ステータス バーに灰色の場所の矢印が表示されたままになるため、問題が発生します。ユーザーが iPhone からアプリケーションを削除すると、灰色の場所の矢印が最初に消えます。
質問は次のとおりです。
ユーザーが Fast App Switcher を使用してアプリケーションを終了し、灰色の矢印がまだステータス バーに表示されている場合、これは位置情報の更新がまだ実行されていることを意味しますか?それとも、アプリケーションが過去 24 時間以内に位置情報サービスを使用したことを意味しますか? 答えは最初のものだと思います。場所の更新はまだ実行されています!
アプリケーションはバックグラウンドで実行する必要があるため、アプリケーションがバックグラウンドに入ったときに LocationManager を停止できません。
applicationWillTerminate:
ユーザーが Fast App Switcher を使用してアプリケーションを強制終了しても呼び出されません。アプリケーションが Fast App Switcher を使用して終了されたとき、または OS によって終了されたときに、イベントを受け取る方法はありますか????Fast App Switcher を使用してアプリケーションを強制終了すると、ステータス バーの灰色の矢印が消える他のアプリケーションを見たことがあります。これらのアプリケーションはどのようにこれを達成しますか???