0
我写了一个小的Google Maps应用程序,这让我产生了一些问题。Android:结果后关闭活动
我写的LocationListener覆盖了onProviderDisabled方法来调用一个Activity,用户可以在其中切换其GPS。
这样做很好,但一个问题仍然存在。如果我关闭了Maps_Activity,然后关闭了GPS,看起来Listener已经在运行,因为活动(说我的人,GPS没有运行)仍然弹出。作为跟随
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:
为随后的LocationListner
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