2010-01-06 33 views
7

Sau khi khởi chạy trình nghe bởi mã sau đây hoạt động tốt.android cách dừng gps

LocationManager locationManager =(LocationManager) getSystemService(Context.LOCATION_SERVICE); 
locationManager.requestLocationUpdates(
        LocationManager.GPS_PROVIDER, WLConstants.DELAY_HOUR, gpsl 
          .getMinDistance(), gpsl); 

Sau một thời gian tôi dừng lại người nghe bằng đoạn mã sau

locationManager.removeUpdates(this); 

nhưng vấn đề là nó vẫn đang tìm kiếm gps của tôi bất kỳ giải pháp ??? làm thế nào để ngăn chặn gps?

+2

Hãy nhớ chấp nhận câu trả lời cho các câu hỏi trước bạn đã hỏi - bạn chỉ chấp nhận 45% cho đến nay. Bằng cách đó nhiều người sẽ có khả năng tiếp tục trả lời các câu hỏi. :) –

Trả lời

19

Bạn cần chuyển cùng một đối tượng triển khai LocationListener mà bạn đã yêu cầu cập nhật vị trí cho phương thức locationManager.removeUpdates().

Vì vậy, trong trừ thisgpsl là một và giống nhau, bạn nên gọi:

locationManager.removeUpdates(gpsl); 
0

nghe implemention My

public class GPSLocationListener extends Activity implements LocationListener { 

    @Override 
     public void onLocationChanged(Location location) { 
//code here 
    } 

    } 

khi tôi cố gắng để loại bỏ người nghe bằng follwing lỗi mã thời gian biên dịch.

locationManager.removeGpsStatusListener(GPSLocationListener) 
+2

Bạn cần sử dụng tên * instance * thay vì tên * class * khi xóa người nghe. Trong câu hỏi ban đầu của bạn, người nghe của bạn là một biến được gọi là 'gpsl'. Có lẽ, đây là biến thành viên trong lớp của bạn. Nếu không, hãy biến nó thành biến thành viên thay vì địa phương thành phương thức đó. Sau đó, bạn có thể vượt qua 'gpsl' khi bạn gọi' removeGpsStatusListener'. –

+1

Bạn không thể sử dụng removeGpsStatusListener với một LocationListener! Một LocationListener khác với GpsStatus.Listener. – Erwan

0

Bạn phải vượt qua các ví dụ để GPSLocationListener đi removeGpsStatusListener phương pháp và không phải là tên lớp học của bạn.

1

Bạn có thể vượt qua các tham số như thế này GPSLocationListener.this

locationManager.removeGpsStatusListener(GPSLocationListener.this); 

các biên dịch sẽ không thể sai

3

Nếu bạn đang sử dụng bản đồ, bạn phải làm:

locationManager.removeUpdates(locationListener); 

mMap.setMylocationEnabled(false); 
+0

.setMyLocationEnabled (sai) thực sự là những gì bị thiếu trong mã của tôi. Cảm ơn rất nhiều! – marson