Small Google지도 애플리케이션을 작성 했으므로 몇 가지 문제가 있습니다.Android : 결과 종료 후 결과
내가 작성한 LocationListener는 onProviderDisabled 메서드를 재정 의하여 사용자가 GPS를 켤 수있는 Activity를 호출합니다.
이 작업은 잘 수행되지만 문제는 여전히 있습니다. Maps_Activity를 종료하고 GPS를 종료 한 후에도 Listener가 이미 실행 중이므로 Activity (내게 말하는 사람, GPS가 실행 중이 아님)가 계속 나타나기 때문에 나타납니다. 다음으로
LocationListner :
public class LocationUpdateHandler implements LocationListener {
@Override
public void onLocationChanged(Location location) {
mMyLocationOverlay.enableMyLocation();
mMyLocationOverlay.runOnFirstFix(new Runnable() {
@Override
public void run() {
mMapView.getController().animateTo(
mMyLocationOverlay.getMyLocation());
}
});
}
@Override
public void onProviderDisabled(String provider) {
Intent i = new Intent(MapActivity.this, NoGpsActivity.class);
startActivity(i);
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(), "GPS ready", Toast.LENGTH_LONG).show();
}
}
NoGPSAcivity.class 다음과 같이
public class NoGpsActivity extends Activity {
private OnClickListener mEnableGPSListener = new OnClickListener() {
@Override
public void onClick(View v) {
startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gps_not_available_overlay);
Button mEnableGPS = (Button)findViewById(R.id.enablegps_button);
mEnableGPS.setOnClickListener(mEnableGPSListener);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == 0){
finish();
}
}
}
여러분의 도움에 감사드립니다!
안녕하세요, 고마워요, 당신의 솔루션은 나를 위해 잘 작동합니다. removeUpdates (LocationListener)를 MapView의 onDestroy-Method에 넣습니다. 감사! – Chris