如何关闭我的地理位置日志,甚至关闭我的应用程序

时间:2019-03-06 14:29:28

标签: react-native

我想获取我的位置坐标,甚至在应用关闭时也可以。我该怎么做?

我使用下面的代码每隔1秒获取一次我的位置坐标,但是它总是给我相同的坐标。我不知道为什么它不更新。

即使这是可行的,当应用关闭时我也无法获得坐标。对这个有什么想法吗?

我是这样做的:

 componentDidMount() {
        this.interval = setInterval(() => {

navigator.geolocation.getCurrentPosition((position) => {
            var lat = parseFloat(position.coords.latitude);
            var lng = parseFloat(position.coords.longitude);

              console.log("lat :",lat);
              console.log("lng :",lng);

              this.setState({position1: lat, position2: lng});

          },
          error => Alert.alert(error.message),
                { enableHighAccuracy: true, timeout: 30000, maximumAge: 1000 } 
          );

        }, 1000);
      }

      componentWillUnmount() {
        clearInterval(this.interval);
      }

1 个答案:

答案 0 :(得分:1)

如果应用程序在后台或进入前台,则您可能想利用AppState api和removeSecond :: (Eq a) -> [a] -> [a] removeSecond = go False where go _ _ [] = [] go True needle (x:xs) | needle == x = xs | otherwise = x : go True needle xs go False needle (x:xs) | needle == x = x : go True needle xs | otherwise = x : go False needle xs 的优势来进行位置更改。如果该应用程序已关闭,我不确定如果该应用程序已关闭,react native是否会直接在API监视位置。但是,您可以使用react-native-queue来执行此操作。您可能想看看https://github.com/billmalarky/react-native-queue#os-background-task-full-example