Note that there are some explanatory texts on larger screens.

plurals
  1. POGPS icon won't disappear when activity destroyed?
    primarykey
    data
    text
    <p>Being an Android newbie experimenting with GPS stuff I managed to put together this code and it works just like I expect it to except for one thing, the GPS icon never goes away. How can get the GPS icon to disappear when the activity is destroyed? I have </p> <pre><code>locationManager.removeUpdates(GPSMapTest.this); locationManager = null; </code></pre> <p>in my <code>onPause()</code> but apparently that's not enough? Thanks.</p> <p>The problem exists in the emulator and also on my HTC EVO with 2.2. On my EVO, the icon stays there when the activity is destroyed and only disappears when I uninstall the app.</p> <pre><code> public class GPSMapTest extends MapActivity implements LocationListener, OnClickListener { /** Called when the activity is first created. */ private MapView mapView; private MapController mapController; private LocationManager locationManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSPARENT); setContentView(R.layout.main); mapView = (MapView)findViewById(R.id.mapview); mapController = mapView.getController(); mapController.setZoom(18); mapView.setClickable(true); mapView.setEnabled(true); mapView.setSatellite(true); Button buttonCurrentLoc = (Button)findViewById(R.id.myloc_btn); buttonCurrentLoc.setOnClickListener(this); }//End onCreate() @Override protected boolean isRouteDisplayed() { return false; } @Override protected void onPause() { super.onPause(); locationManager.removeUpdates(GPSMapTest.this); locationManager = null; } @Override protected void onResume() { super.onResume(); locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setPowerRequirement(Criteria.POWER_LOW); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setSpeedRequired(false); criteria.setCostAllowed(false); final String bestProvider = locationManager.getBestProvider(criteria, true); Toast.makeText(GPSMapTest.this, "Best Provider: " + bestProvider, Toast.LENGTH_SHORT).show(); locationManager.requestLocationUpdates(bestProvider, 60000, 1, GPSMapTest.this); Location location = locationManager.getLastKnownLocation(bestProvider); if (location != null) { Double latitude = location.getLatitude()*1E6; Double longitude = location.getLongitude()*1E6; GeoPoint point = new GeoPoint(latitude.intValue(),longitude.intValue()); final MyLocationOverlay myLocationOverlay = new MyLocationOverlay(GPSMapTest.this, mapView); mapView.getOverlays().add(myLocationOverlay); myLocationOverlay.enableMyLocation(); mapController.animateTo(point); } mapView.setBuiltInZoomControls(true); } public void onClick(View v) { switch (v.getId()) { case (R.id.myloc_btn): locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setPowerRequirement(Criteria.POWER_LOW); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setSpeedRequired(false); criteria.setCostAllowed(false); final String bestProvider = locationManager.getBestProvider(criteria, true); Location location = locationManager.getLastKnownLocation(bestProvider); if (location != null) { Double latitude = location.getLatitude()*1E6; Double longitude = location.getLongitude()*1E6; GeoPoint point = new GeoPoint(latitude.intValue(),longitude.intValue()); final MyLocationOverlay myLocationOverlay = new MyLocationOverlay(GPSMapTest.this, mapView); mapView.getOverlays().add(myLocationOverlay); myLocationOverlay.enableMyLocation(); mapController.animateTo(point); } mapView.setBuiltInZoomControls(true); break; } } public void onLocationChanged(Location location) { locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); if (location != null) { final MyLocationOverlay myLocationOverlay = new MyLocationOverlay(GPSMapTest.this, mapView); mapView.getOverlays().add(myLocationOverlay); myLocationOverlay.enableMyLocation(); myLocationOverlay.runOnFirstFix(new Runnable() { public void run() { mapController.animateTo(myLocationOverlay.getMyLocation()); } }); } mapView.setBuiltInZoomControls(true); } public void onProviderDisabled(String provider) { } public void onProviderEnabled(String provider) { } public void onStatusChanged(String provider, int status, Bundle extras) { } } </code></pre> <p>No one? I tried everything with my limited knowledge! Help!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload