Stop Location Listener in Android

前端 未结 5 590
小鲜肉
小鲜肉 2020-12-10 00:50

In my android app I need to get current GPS location of the user at the start of the application only if location has change from the previous location. But the problem is w

相关标签:
5条回答
  • 2020-12-10 01:22
    mLocManager.removeUpdates(locationListenerObject);
    mLocManager = null;
    

    Call this inside your onLocationChange Method when lat and long has been captured by the listener.

    Hope I helped..

    0 讨论(0)
  • 2020-12-10 01:35

    Try This

    locationManager = activity!!.getSystemService(Context.LOCATION_SERVICE) as LocationManager
    
    locationListener = object : LocationListener {
                override fun onLocationChanged(location: Location) {
                    if (location != null) {
                        Log.e(
                            "LOCATION",
                            "Latitude " + location.latitude.toString() + "  | Longitude :" + location.longitude.toString()
                        )
                        if (locationListener != null)
                            locationManager!!.removeUpdates(locationListener!!)
                    }
                    //Toast.makeText(getApplicationContext(),location.toString(),Toast.LENGTH_SHORT).show();
                }
    
                override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {
                }
    
                override fun onProviderEnabled(provider: String) {
                }
    
                override fun onProviderDisabled(provider: String) {
                }
            }
    
    0 讨论(0)
  • 2020-12-10 01:36
    locationManager.requestSingleUpdate(String provider, LocationListener listener, Looper looper);
    

    If you only need to get the current location once, try this method instead using

    locationManager.requestLocationUpdates(String provider, long minTimeMs, float minDistanceM, LocationListener listener)
    

    and stop the update using locationManager.removeUpdates(LocationListener listener)

    hope this works and help others with same problem.

    0 讨论(0)
  • 2020-12-10 01:41

    You can stop the LocationListener by making its object to null after stoping LocationListener locationManager.removeUpdates(mLocListener);, that is mLocListener = null; when you want it to stop fetching the Latitudes and Longitudes.

    0 讨论(0)
  • 2020-12-10 01:46

    You can stop continuous location updating by calling method locationManager.removeUpdates(locationListener).

    Here is an example :

    LocationManager locationManager; 
    LocationListener locationListener;
    
    // for location updates 
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
    
    // stop location updating
    locationManager.removeUpdates(locationListener);
    
    0 讨论(0)
提交回复
热议问题