无法创建处理程序... Looper.prepare()

时间:2013-04-21 16:20:29

标签: android timer

我正在编写一个客户端服务器程序,客户端将其位置提供给服务器,服务器显示它。 我有一个课程来获取位置纬度和经度。 我有一个计时器每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 =新的GPSTracker(MainActivity.this); 如果我把这一行放在MainActivity中没有问题,但问题是我没有得到更新的位置,我只是得到相同的位置,因为它只创建了一次。所以这一行应该在GetLocation()方法中,每次定时器调用它时我都可以获得更新的位置。

任何帮助?

1 个答案:

答案 0 :(得分:0)

这是Android的座右铭:避免Timer / TimerTask使用Handler