我正在尝试创建一个应用程序,每x分钟将您的gps位置发送到网络服务器。我很困惑我应该怎么做。我是否每隔x分钟使用计时器或其他服务来调用get gps函数?
这就是我用来获取gps信号的原因
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String bestProvider = locationManager.getBestProvider(criteria,
false);
LocationListener loc_listener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
};
try {
Looper.prepare();
locationManager.requestLocationUpdates(bestProvider, 0, 0,
loc_listener);
} catch (Exception e) {
e.printStackTrace();
}
Location location = locationManager
.getLastKnownLocation(bestProvider);
答案 0 :(得分:2)
alarm非常适合这一点。您可以让应用程序请求系统每隔30分钟(每次手动或使用setRepeating()方法)触发警报。无论您的应用程序当时是否正在运行,此警报都将消失。您将需要一个广播接收器来处理它产生的意图。警报here有一个很好的教程。
答案 1 :(得分:1)
您应该注册AlarmManger以启动您的IntentService,这将获得该位置并将其发送到服务器。
在服务执行结束时,从当前时间开始设置新警报30分钟。