如果位置尚未修复,如何停止gps?

时间:2013-02-19 15:12:03

标签: java android gps

在我的Android应用程序中,我使用gps激活修复位置:

mLManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 30000, 0, mLListener);

这样每隔30秒GPS就会激活并寻找位置。 我想要的是这个: gps第n次被激活,当我走进建筑物时,我无法确定我的位置,因此他无限期地寻找位置。如果位置在60秒内没有固定,我可以停止吗?我怎样才能做到这一点? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

public boolean getLocation(Context context) {
         mLManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 30000, 0,mLListener);
         timer1=new Timer();
         timer1.schedule(new GetLastLocation(), 60000);

         return true;
}

LocationListener mLListener = new LocationListener() {
         public void onLocationChanged(Location location) {
         timer1.cancel();
         }
};

class GetLastLocation extends TimerTask {
       @Override
        public void run() {
        }
}

它查找一个位置,如果找不到任何位置,并且60秒到期,那么计时器将会执行一个动作。如果确实找到了位置,它将取消定时器。