電話の場所を生成するクラスがあり、新しい場所が取得されるたびにTextViewが更新されます。このクラスにTrackという名前を付けます。
Trackクラスには、ThreadであるsendLocationオブジェクトが含まれています。sendLocationはTrackオブジェクトを含み、TextViewが変更されたかどうか(TrackクラスがTextView文字列を返すメソッドを取得したかどうか)をx回ごとにチェックします。
最後のアドレスを文字列に保存し、最後のアドレスとテキストビューアドレスをx回ごとに比較します。それらが異なる場合は、この文字列をデータベースに送信します。重複を避けるためにそうします。
私の質問は、どうして同じアドレスをデータベースに送信し続けるのかということです。つまり、文字列の比較は非常に簡単です。ここにいくつかのコードがあります:
if(!t1.getAddress().equals(lastAddress))
{
lastAddress = t1.getAddress();
//send last address to the db
//sleep for a while
}
t1はTrackインスタンスです。
そして、これがTrackのgetAddressメソッドです。
public String getAddress()
{
return this.mAddress.getText().toString();
}
何が問題なのですか?それは単純な文字列の比較です!!