4

他の多くのアプリケーションと同様に、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ですから、それが「止まらない」リスナーであり、問​​題を引き起こしていると確信しています。

4

3 に答える 3

2

googleMap.setMyLocationEnabled(false); onPause() で私の問題を解決しました。そして、OnCreate() でそれをtrueに設定しています。これが他の人に役立つことを願っています。

于 2014-07-16T11:07:59.847 に答える
1

LocationListener等しい値を設定しnull、再インスタンス化しますonResume()

于 2012-06-28T14:38:24.763 に答える
1

アプリケーションを閉じる(または終了する)場合は、使用できます

System.exit(0);

そのため、アプリケーションを閉じると、使用しているすべてのサービスが閉じます。

于 2012-06-28T14:42:14.340 に答える