2012-04-13 36 views
6

Tôi đang phát triển ứng dụng Theo dõi vị trí. Nhưng tôi ngừng nhận cập nhật vị trí bằng cách thực hiện 2 điều ...Biểu tượng GPS vẫn nhấp nháy sau khi locationManager.removeUpdates() và bằng cách đặt locationManager thành null

  1. locationManager.removeUpdates (this); và
  2. vị trí thiết lậpManager tham chiếu đến null.

này sẽ ngừng nhận vị trí tọa độ như tôi muốn ...

Nhưng vấn đề là biểu tượng gps vẫn nhấp nháy .. mà sẽ tháo pin của thiết bị.

Vì vậy, hãy giúp tôi ngừng bản sửa lỗi GPS này ...

Trả lời

1

Nếu bạn đang thử nghiệm điều này trên trình mô phỏng, đây là hành vi hoàn toàn bình thường. Biểu tượng GPS trên thanh trạng thái không bao giờ biến mất.

Nếu bạn đang thử nghiệm trên phần cứng, hoặc bạn đã gọi requestLocationUpdates() nhiều lần (và chưa xóa các bản cập nhật khác) hoặc có thể một cái gì đó khác trên phần cứng đang sử dụng GPS.

+0

Thx thưa bạn, tôi đang thử nghiệm trên thiết bị..Nhưng mã của tôi giống như khi bộ đếm thời gian truy cập, tôi yêu cầu trình quản lý vị trí nhận các bản cập nhật của locationManager.requestLocationUpdates (bestProvider, 10 * 1000, 1, listener); sau đó trong người nghe i hv viết public void onLocationChanged (Vị trí địa điểm) { \t \t \t \t \t \t FileUtils.save (vị trí, mContext); \t \t \t locationManager.removeUpdates (this); \t \t \t \t \t} Vì vậy, theo quan điểm của tôi không có cách nào mà mã của tôi đang yêu cầu cập nhật này nữa ... Vì vậy, xin vui lòng cho tôi biết bất kỳ sửa đổi mã i hv để làm .. – NullPointerException

+0

Mặc dù tôi làm removeUpdates cho tất cả các requestLocationUpdates Tôi bắt đầu, nó chỉ xảy ra với tôi trên một số thiết bị, như Samsung Galaxy S2. Tuy nhiên, có vẻ như biểu tượng nhấp nháy GPS sẽ biến mất sau vài giây nữa (thường nhỏ hơn 30) – Erwan

11

Nếu bạn hiển thị vị trí và/hoặc la bàn trong bản đồXem, bạn phải tắt chúng. Nếu bạn không làm điều đó, GPS vẫn hoạt động.

Ex:

private MapView mapView; 
private MyLocationOverlay Location; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.frame_layout); 

    mapView = (MapView) this.findViewById(R.id.mapView); 
    Location = new MyLocationOverlay(this, mapView); 
    Location.enableMyLocation(); 
    Location.enableCompass(); 
    mapView.getOverlays().add(Location); 
} 

@Override 
public void onDestroy() { 
    Location.disableMyLocation(); 
    Location.disableCompass(); 
} 
+2

Đây là câu trả lời cho tôi. Cảm ơn! Đối với api Google Maps được cập nhật, tôi đã thực hiện điều này: 'map.setMyLocationEnabled (false);' – Robert

3

Ngoài các câu trả lời ở trên, trong tình huống mà bạn mô tả, tôi muốn khuyên bạn nên kiểm tra cẩn thận các thư viện của bên thứ ba được sử dụng trong dự án của bạn, đặc biệt là một số thư viện phân tích .

Tôi đã có một nhức đầu lớn trước khi tôi nhận ra rằng biểu tượng GPS đã được gây ra bởi Flurry đã được cài đặt không chính xác (FlurryAgent.setReportLocation(true) được đặt và onEndSession() không được gọi là onStop()).

Các vấn đề liên quan