잠시 후 앱을 종료했다가 다시 열면 내 앱이 위치를 업데이트하지 않으며 언젠가는 업데이트하기 전에 오랜 시간 (약 5 분)이 소요됩니다. 어떻게 해결할 수 있습니까? 이것은 내 코드GPS가 닫히고 Android 앱을 닫은 후 위치를 업데이트하지 않습니다.
private LocationManager lm;
private LocationListener locationListener;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lm = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
locationListener = new mLocationListener();
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, locationListener); }
private class myLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc) {
if (loc != null) {
TextView gpsloc = (TextView) findViewById(R.id.widget28);
gpsloc.setText("Lat:"+loc.getLatitude()+" Lng:"+ loc.getLongitude());
}
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
TextView gpsloc = (TextView) findViewById(R.id.widget28);
gpsloc.setText("GPS OFFLINE.");
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
}
한 가지를 업데이트 할 수 바이더가 없음을 기회가있을 수 있습니다 : 당신이 정말로 onPause에서 위치 리스너를 등록 해제한다(). 그렇지 않으면 업데이트가 계속 유지되며 GPS는 아무 이유없이 계속 실행됩니다 (좋지 않음). 즉, onCreate()가 아니라 onResume()에 등록하십시오. – Matthias
별도의 클래스가 필요하지 않습니다. 액티비티에 LocationListener 인터페이스를 구현시킨 다음 거기에서 메서드를 재정의 할 수 있습니다. – MattC
Blow Link를 확인하십시오 .. 도움이 될 수도 있습니다 ... 위치 관리자가 위치 정보를 쉽게 업데이트 할 수 있도록 sach 인수를 전달해야하므로 위치를 얻는 것이 옳습니다 ... http : // developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28long,%20float,%20android.location.Criteria,%20android.app.PendingIntent%29 –