今天在做gps获取的时候需要计算时间,要求是获取10次gps,如果超过1分钟的话就提示获取超时。
刚开始想的是用定时器,但后来现在有个更快的方法就可以解决。
那就是在获取gps前获取一下当前系统时间,在获取完gps的时候再获取一下当前系统时间,两个一减,如果超过1分钟就提示超时。
具体做法如下:
long start = System.currentTimeMillis();
for (int i = 0; i < 10; i++) {
Location location = GpsUtil.getLocation(activity);
if (null != location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
loList.add(longitude);
laList.add(latitude);
Log.i("tag", location.toString());
}
}
long end = System.currentTimeMillis();
if (end - start > 10 * 1000) {
Toast.makeText(activity, "获取GPS超时,请重新获取!", Toast.LENGTH_SHORT);
return;
}