请问android端定位怎么停止定位呢



  • 请问android端定位怎么停止定位呢?我看着好象是一直在定位呢?
    我是按照demo来做的



  • watchPosition方法会返回一个watchID,然后调用clearWatch(watchID)就好。

     componentDidMount: function() {
        this.watchID = navigator.geolocation.watchPosition((lastPosition) => {
          this.setState({lastPosition});
        });
      },
    
      componentWillUnmount: function() {
        navigator.geolocation.clearWatch(this.watchID);
      },
    

    实际上在内部实现上,是只要有任何一个活跃的watchID,内部定位都会持续进行。所有的watchID都被clearWatch之后,就会停止定位了。

    如果实在无法理清哪里的watchID没有被释放,stopObserving()方法可以用来停止目前所有的定位请求。



  • 你好,我调用了clearWatch方法,但是android的gps标志无法消失,我也用了stopObserving方法,但是也无法取消



  • @young 首先检查clearWatch以及前后的过程有没有报错,clearWatch是否已经被调用到;如果依然如此的话,可能怀疑为React Native的BUG,可以考虑去github提issue; 我下周找时间验证一下这个问题。