2015-02-04 4 views
0

내 앱에서 사용자가 위치를 몇 번 방문했는지 표시해야합니다. onlocationchanged 방식으로 위치 정보를 DB에 저장하여 작업을 완료했습니다. 하지만 내가 유휴 상태에 앉아서이 메소드를 자주 호출하는 경우에도 많은 항목이 DB에 삽입됩니다. 어떻게 이것을 구현할 수 있습니까? 사전안드로이드에서 위치를 방문한 횟수.

감사
@Override 
public void onLocationChanged(Location location) {   
    if (location != null && location.getLatitude() != 0 
          && location.getLongitude() != 0) { 

         Preferences.setLattitude(context, location.getLatitude()); 
         Preferences.setLongitude(context, location.getLongitude()); 
            Preferences.setCurrentLocation(context, Utility 
           .getAddress(location.getLatitude(), 
             location.getLongitude(), context)); 

         saveCurrentLocationDetails();  } } 
+0

위도와 경도가 이미 데이터베이스에 있는지 확인하지 않는 이유는 무엇입니까? 그리고 그것이 있다면, 위치를 저장하는 대신 "방문한 시간"에 대한 카운트를 증가시킵니다. – JoelFernandes

+0

@JoelFernandes 때로는 다른 값을 가져 오는 동일한 위치에 대해 긴 값을 잠급니다. – user1767260

+0

@JoelFernandes 또한 사용자가 해당 위치에서 이동하지 않으면 카운트를 증가시키지 않습니다. 차이가있을 경우 – user1767260

답변

2

삽입 된 두 개의 연속 된 위치 사이의 위치 차이를 측정하십시오, 차이가 임계 값 이상이면, 다음 위치 방문 수를 증가, 다른, DB에 자주 같은 위치를 저장하는 경우에도 필요를 폐기하지, 또한 차이의 문턱 값을 유지 200 미터입니다.

관련 문제