后台任务不工作React Native Expo

bhmjp9jg  于 2023-03-19  发布在  React
关注(0)|答案(1)|浏览(138)

我正在开发一个react原生应用程序,它需要在程序关闭时运行一些任务,我需要跟踪用户的位置。我遇到的问题是,当程序打开时,一切都很完美,但当程序关闭时,一切都不完美。
下面是用户按下按钮时调用的sleep函数:

function sleep() {
    //Here, I register to receive background updates 

    return Location.startLocationUpdatesAsync(BACKGROUND_TAKS, {
      accuracy: LocationAccuracy.BestForNavigation,
      foregroundService:{
        title  :'location service',
        text: 'tracking your location',
        notificationTitle: 'Location...',
        notificationBody: 'currently using location...'
      },
// ? A notification must display now no ? Nothing is dispaying

      deferredUpdatesDistance: 15, //every 15 meters
      deferredUpdatesInterval: 10000, //ten secodes
      pausesUpdatesAutomatically: false
    })
  };

这是我在全球范围内的背景任务:

defineTask(BACKGROUND_TAKS, async ({data: {locations}, error}) => {
  if (error){
    return console.log(error)
  }

  console.log('BACKGROUND LOCATION : ', locations)
})

问题是,当我退出应用程序时,它不工作。定位服务停止,我不再接收任何数据。我在谷歌像素模拟器和三星Galaxy S20上测试了我的代码,但两者都不工作。有人知道为什么它不工作吗?
预先感谢你的帮助。

ubby3x7f

ubby3x7f1#

问题是,当我退出应用程序时,它不工作
你是退出你的应用程序还是把它移到后台?就像名字暗示的那样,后台任务将在应用程序仍然打开但手机上显示其他内容时工作。
如果要将其移至后台,请确保已授予location在后台运行www.example.com的权限https://docs.expo.dev/versions/latest/sdk/location/#usebackgroundpermissionsoptions

相关问题