我正在编写一个客户端服务器程序,该客户端将其位置提供给服务器,然后服务器显示它。我有一门课来获取位置的纬度和经度。我有一个计时器每 2 秒检索一次位置。但我收到此错误:无法在未调用 Looper.prepare() 的线程内创建处理程序
这是我在 onCreate 方法中的计时器:
time.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
GetLocation();
}
}, 0, sampling_interval);
}
这是 GetLocation 方法:
private void GetLocation(){
gps = new GPSTracker(MainActivity.this);
// check if GPS enabled
if(gps.canGetLocation()){
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
Log.d("Latitude", Double.toString(latitude));
}else{
gps.showSettingsAlert();
}
}
问题是:gps = new GPSTracker(MainActivity.this); 如果我把这条线放在 MainActivity 里面没有问题,但问题是我没有得到更新的位置,我只是得到相同的位置,因为它只创建了一次。所以这条线应该在 GetLocation() 方法中,每次计时器调用它时我都可以获得更新的位置。
有什么帮助吗?