他の多くのアプリケーションと同様に、Google マップ上でユーザーを特定する「地理位置情報」機能を備えたアプリケーションを作成しました。「LocationManager.NETWORK_PROVIDER」を使用してユーザーを見つけ、同時に「MyLocationOverlay」(onLocationChanged()
メソッド内) をインスタンス化して開始し、場所を取得しました。2 つ目のため、GPS がオンになり (上で点滅)、これで問題ありません。
問題は、アプリケーションを閉じた後 ([戻る] ボタンまたはタスク マネージャーを使用)、GPS 機能がまだハングしており、更新を取得しようとしていることです。
ユーザーがアクティビティを離れた後にオフにする方法は? here や、メソッド内に置くlocationManager.removeUpdates(this);
などの他のフォーラムからの提案を試みました、、。メソッドは次のようになります。locationManager.removeUpdates(mMyLocationOverlay);
onPause()
onStop()
onDestroy()
OnPause
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
locationManager.removeUpdates(mMyLocationOverlay);
}
(「this」は、LocationListener を実装するクラスを参照します)
アクティビティを終了した後に GPS の更新をオフにする方法を教えてください (MapActivity を拡張するクラスです) が、携帯電話自体の GPS 機能をオフにすることはできませんか?
興味深いことに、MyLocationOverlay でその部分を削除すると、もちろん GPS は開始されないので問題ありません。mMyLocationOverlay
ですから、それが「止まらない」リスナーであり、問題を引き起こしていると確信しています。