代码之家  ›  专栏  ›  技术社区  ›  maxsap

LocationManager请求android中的LocationUpdates和timertask

  •  3
  • maxsap  · 技术社区  · 14 年前

    我有以下代码:

    if (gps_enabled) {
            Log.e("$$$$$$$$$$$$$$",
                    "GPS is enabled requestion location updates... interval value is: "
                            + interval);
            lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
                    locationListenerGps);
        }
        else{
            if (network_enabled) {
                Log.e("$$$$$$$$$$$$$$",
                        "Network is enabled requestion location updates... interval value is: "
                                + interval);
                lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,
                        0, locationListenerNetwork);
            }
        }
    

    有了这些代码,我可以得到位置(至少使用网络供应商!(另一个职位上的另一个问题) 所以我想用一个计时器任务来安排它,我现在有了

    timer1.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                getLocation();
            }
    
        }, 0, 180000);// 3 minutesr...
    

    其中getLocation是我之前调用的方法,但是当计时器调用该方法时,什么也没有发生,日志在此时停止

    Log.e("$$$$$$$$$$$$$$",
                        "Network is enabled requestion location updates... interval value is: "
                                + interval);
    

    而且我从来没有被告知我的位置。 有什么想法吗?

    1 回复  |  直到 10 年前
        1
  •  7
  •   BenMorel Sonaten    10 年前

    好的,我花了一段时间,但我已经找到了解决办法,因为文档中说您只能从循环线程请求位置管理器的位置更新,这意味着当调用计时器任务时,您必须获取消息并将消息发送给处理程序,处理程序将负责请求位置更新。