I have an app that uses the LocationManage functions which works well until the app is stopped or paused. The location listener function is still carrying on in the background. Relevant bits of code follow. When I click home or back the onstop() function is being triggered correctly.
package uk.cr.anchor;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TableRow;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.content.SharedPreferences;
import android.graphics.Color;
public class main extends Activity {
/** Called when the activity is first created. */
private LocationManager mlocManager;
private LocationListener mlocListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
@Override
protected void onStop(){
stoplistening();
super.onStop();
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc)
{
loc.getLatitude();
loc.getLongitude();
etc etc etc
}
private void stoplistening() {
if (mlocManager != null) {
Toast.makeText( getApplicationContext(),
"kill",
Toast.LENGTH_SHORT ).show();
mlocManager.removeUpdates(mlocListener);
}
else {
Toast.makeText( getApplicationContext(),
" not kill",
Toast.LENGTH_SHORT ).show();
}
}
}
I always get the "not kill" message.
Can anyone help me!