0

バックグラウンドとフォアグラウンドのMapkitでCLLocationManagerを使用して、ユーザーの場所を表示するアプリがあります。BackgroundModesがアクティブ化されていません。そのため、アプリがバックグラウンドで実行される場合は、[mapview setShowsUserLocation:NO]を使用してユーザーの場所の表示を停止します。そしてappDelegateで、LocationManagerを起動し、[locationManagerstartUpdatingLocation]と[locationManagerstopUpdatingLocation](現時点ではバッテリーの消耗の心配はありません)で30秒ごとに停止して、バックグラウンドでユーザーの場所を取得します。したがって、locationManagerが5秒オンで25秒オフであるとしましょう。この25秒間、位置情報サービスのインジケーターは離れているはずですよね?しかし、そうではありません。LocationManagerに開始するように指示しなかった場合でも、インジケーターは常に表示されます。アプリを強制終了しても、設定で位置情報サービスをオフにするだけでは役に立ちません。

これらの場合でも、さまざまな投稿ですべてを試しました 。位置情報サービスインジケーターが「オン」のままで あるアプリケーションが終了しても位置情報サービスが停止しない

そして、locationManager=nilを呼び出したり解放したりすることは決してありません。とてもクレイジー..誰もが私を助けることができますか?


更新:だから、これは私を本当に夢中にさせます。数日以来、これに固執しました。そして、それを私の実際のiPhoneでのみテストしました。今、私はiPadとiPhoneシミュレーターでそれを試しました、そして両方のデバイスでそれは私が期待した通りです:アプリがバックグラウンドにあるとき、5秒インジケーターがオンになり、25秒インジケーターが消えます。それで、それは私の実際の電話のバグですか、それとも誰かがいくつかの提案がありますか?私はそれに5.1.1と脱獄を持っていますが、これはそれに影響を与えるべきではありません!?

助けてくれてありがとう:)

4

1 に答える 1

0

わかりました、私はちょうどそれを理解しました。この投稿は私を助けました。

「iOS設定から[一般]|[リセット]|[位置情報の警告をリセット]を選択します。これにより、すべてのアプリへの警告がリセットされます。これは、次に位置情報が必要なアプリを起動したときに、iOSが位置情報の許可ダイアログを表示することを意味します。アクションシートから「警告をリセット」してください。」

私はこれを数回呼び出しましたが、その後は期待どおりに機能していました(そして、シミュレーターでは常に機能していました):-)!今、私はバッテリーの消耗などについて考えることができます...

于 2012-08-14T04:41:46.983 に答える