当前的OnLocationChange事件如下。此事件每秒触发。
@Override
public void onLocationChanged(Location location) {
float speed = location.getSpeed();
if ( speed >= 60){
longitude = location.getLongitude();
latitude = location.getLatitude();
longitude.toString();
latitude.toString();
String speedStr = String.valueOf(speed);
textViewSpeed.setText(speedStr);
//inserting some records
dateTime = new Date(location.getTime());
db.execSQL("INSERT OR IGNORE INTO 'data' VALUES('"+ longitude +"','"+ latitude +" ',' " + speedStr + " ', '"+ dateTime+ "');");
}
}
使用如下所示的标志变量。
//Define a class level static variable flag
private static boolean isSaved = false;
@Override
public void onLocationChanged(Location location) {
float speed = location.getSpeed();
if ( speed >= 60 && !isSaved) {
longitude = location.getLongitude();
latitude = location.getLatitude();
longitude.toString();
latitude.toString();
String speedStr = String.valueOf(speed);
textViewSpeed.setText(speedStr);
//inserting some records
dateTime = new Date(location.getTime());
db.execSQL("INSERT OR IGNORE INTO 'data' VALUES('"+ longitude +"','"+ latitude +" ',' " + speedStr + " ', '"+ dateTime+ "');");
//Saved the data once
isSaved = true;
}else{
isSaved = false;
}
}