Java 我如何添加计时器来调用函数以每1分钟显示gps位置
我正在创建用于显示Gps位置的应用程序。我需要每1分钟显示一次位置。我可以使用计时器吗?如果可以,请向我提供计时器代码。您无法使用Java 我如何添加计时器来调用函数以每1分钟显示gps位置,java,android,Java,Android,我正在创建用于显示Gps位置的应用程序。我需要每1分钟显示一次位置。我可以使用计时器吗?如果可以,请向我提供计时器代码。您无法使用计时器来获取位置更新。已经有一种方法可以获取用户当前位置的更新 您应该调用requestLocationUpdates()方法来获取lastKnownLocation的更新 方法是, LocationManager mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE); mLocMgr.reque
计时器来获取位置更新。已经有一种方法可以获取用户当前位置的更新
您应该调用requestLocationUpdates()
方法来获取lastKnownLocation
的更新
方法是,
LocationManager mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocMgr.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 100, this);
这将在1000毫秒和100米后获得最后一次已知位置更新
为了得到经纬度
Location location;
if (mLocMgr != null) {
location = mLocMgr.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
System.out.println(latitude+" "+longitude);
}
}
请参考中的位置管理器,根据您的查询,我知道您希望每1分钟请求一次位置更新,并且您已经为此编写了一个处理程序。请尝试以下对我有效的代码
LocationManager mlocManager;
mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mlocListener = new MyLocationListener();
//paste this in your handler or timer
{
if (mlocManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
mlocManager.requestSingleUpdate(
LocationManager.NETWORK_PROVIDER, mlocListener, null);
} else if (mlocManager
.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
mlocManager.requestSingleUpdate(LocationManager.GPS_PROVIDER,
mlocListener, null);
}
}
//this the class to get the location.
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
try {
//you may store these values where ever required.
Double latitude = location.getLatitude();
Double latitude = location.getLongitude();
} catch (Exception e) {
e.printStackTrace();
}
}
@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
}
}
最终处理程序=新处理程序();定时器=新定时器();TimerTask doAsynchronousTask=new TimerTask(){@Override public void run(){handler.post(new Runnable(){public void run(){try{displayCurrentLocation();}catch(例外e){}};}};timer.schedule(doAsynchronousTask,5*100);这是我的计时器代码,我需要在每1minAs中显示位置。我说过,你不能使用计时器来获取位置更新。你必须使用位置管理器,正如我在回答中所说的