如何在后台每隔30分钟获取gps位置

时间:2011-08-26 22:57:59

标签: android gps

我正在尝试创建一个应用程序,每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);

2 个答案:

答案 0 :(得分:2)

alarm非常适合这一点。您可以让应用程序请求系统每隔30分钟(每次手动或使用setRepeating()方法)触发警报。无论您的应用程序当时是否正在运行,此警报都将消失。您将需要一个广播接收器来处理它产生的意图。警报here有一个很好的教程。

答案 1 :(得分:1)

您应该注册AlarmManger以启动您的IntentService,这将获得该位置并将其发送到服务器。

在服务执行结束时,从当前时间开始设置新警报30分钟。