有没有办法每隔x分钟获取一次该位置,即使没有变化?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法每隔x分钟获取一次该位置,即使没有变化?相关的知识,希望对你有一定的参考价值。

我正在使用android Studio。我使用locationManager.requestLocationUpdates(...)来获取位置。

我想做这样的事情:

//print location every 5 minutes
12:10am lat=10.23652 long=21.25441
12:15am lat=10.23652 long=21.25441
12:20am lat=15.21456 long=58.21452
12:25am lat=12.24752 long=27.24587
12:30am lat=12.24752 long=27.24587
12:35am lat=12.24752 long=27.24587
...

我不知道位置是否改变了,我只想每x分钟打印一次。

答案

解决方案可以包含具有postDelayed的Handler。删除任何回调很重要!

尝试这样的事情:

private boolean continueLoop = true;
private Handler myHandler = new Handler();

private void startLocationManager() {
    try{
        Log.d(TAG, "startLocationManager - Started");
        // here the delay (in this example it is effectively the interval)
        int minutes = 5;
        int delay = 1000 * 60 * minutes;
        myHandler.postDelayed(mAutoLocationManager, delay);
    }
    catch(Exception ex){
        Log.e(TAG, ex.getMessage());
    }
}

private Runnable mAutoLocationManager = new Runnable() {
    public void run() {
        if(continueLoop){
            // preform the scan for the location coordinates
            startYourLocationCoordinates();

            //re-trigger the call to start a new interval
            startLocationManager();
        {
    }
};

// Make certain that you remove the callback when you leave the activity -- maybe in onPause()
private void stopAutoDownloadManager(){
    try{
        myHandler.removeCallbacks(mAutoLocationManager);
    }
    catch(Exception ex){
        Log.e(TAG, ex.getMessage());
    }
}

以上是关于有没有办法每隔x分钟获取一次该位置,即使没有变化?的主要内容,如果未能解决你的问题,请参考以下文章

科尔多瓦离子框架:获取位置后台服务

在Swift 2.0中每隔n分钟更新一次背景中的位置

有没有办法从 python 脚本中获取不断变化的数据,并在 Vue 组件中显示和更新?

即使设备没有移动,位置也会不断变化

如何在流星每隔“X”分钟进行一次jenkins调用以检索作业详细信息?

使用 $timeout 每隔 x 次刷新一次范围