如何使onLocationChange记录速度限制,将数据保存在本地SQL数据库中一次?目前,每秒触发它



当前的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;
     }
}

最新更新