전화 위치를 생성하는 클래스가 있으며 새 위치가 검색 될 때마다 TextView가 업데이트됩니다. 이 클래스의 이름을 트랙으로 지정합니다.문자열 사이의 비교가 잘못되었습니다.
Track 클래스에는 스레드 인 sendLocation 개체가 포함되어 있습니다. sendLocation은 Track 객체를 contatins하고 TextView가 변경되면 매 x 시간마다 검사합니다 (Track 클래스에 TextView 문자열을 반환하는 메서드가 있음).
마지막 주소를 문자열에 저장하고 매 x 시간마다 마지막 주소와 텍스트보기 주소를 비교합니다. 차이가 있다면이 문자열을 내 db로 보냅니다. 중복을 피하기 위해 그렇게했습니다.
내 질문은 어떻게 내 DB에 동일한 주소를 계속 올까? 나는 문자열 비교가 매우 간단하다는 것을 의미합니다.
if(!t1.getAddress().equals(lastAddress))
{
lastAddress = t1.getAddress();
//send last address to the db
//sleep for a while
}
T1이 트랙 인스턴스이다 여기 일부 코드이다.
그리고 여기이 트랙의 getAddress에 방법입니다 :
무엇public String getAddress()
{
return this.mAddress.getText().toString();
}
잘못은 간단한 문자열 비교입니다! 귀하의 DB에 열을 UNIQUE
를 사용
을 '각 경우에 ... –
두 값 모두 로깅을 시도하십시오. 시작/끝 부분에 공백이 있는지 확인하십시오. 다른 것을 볼 수 없습니다. – jadkik94
당신의 문제가 코드에 있다고 의심됩니다. [SSCCE] (http://sscce.org/)를 만들 수 있습니까? –