首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TaskManager:任务"firstTask“已执行,但似乎没有定义。确保在初始化阶段调用"TaskManager.defineTask“

TaskManager:任务"firstTask“已执行,但似乎没有定义。确保在初始化阶段调用"TaskManager.defineTask“
EN

Stack Overflow用户
提问于 2021-12-13 15:13:37
回答 1查看 801关注 0票数 2

我正在运行一个EAS应用程序,在那里我必须使用博览-任务管理器来处理背景位置。当我的应用程序构建时,我会遇到这样的错误:

代码语言:javascript
复制
TaskManager: Task "firstTask" has been executed but looks like it is not defined. Please make 
sure that "TaskManager.defineTask" is called during initialization phase.

下面是我在我的应用程序中执行任务管理器的代码,但是我很难知道在“初始化阶段”我会把它称为什么地方。

代码语言:javascript
复制
import * as TaskManager from 'expo-task-manager'
import * as BackgroundFetch from 'expo-background-fetch'
import * as Location from 'expo-location'

const LOCATION_TASK_NAME = 'background-location-task'

useFocusEffect(
    React.useCallback(()=>{

       const requestBackgroundPermissions = async() =>{
       const {status} = await Location.requestBackgroundPermissionsAsync()
         if(status === 'granted'){
           await Location.startLocationUpdatesAsync('firstTask',{
             accuracy: Location.Accuracy.Balanced,
       });
     }
     requestBackgroundPermissions()

    },
    [],
   ),
 )

//在useFocusEffect之外

代码语言:javascript
复制
TaskManager.defineTask('firstTask',({data,errror})=>{
    if(error){
      alert('Something went wrong with background locations')
    }
    if(data){
      alert('Something went right with background locations')
      const{locations} = data
    }
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-13 20:56:06

因此,如果遇到此问题,请尝试将任务管理器移动到App.js文件中。当应用程序加载时,任务管理器将成为初始化阶段的一部分。如果你有任何问题,可以随意接触,但它应该是这样的:

代码语言:javascript
复制
import React from "react"
import {StyleSheet} from 'react-native'
import * as TaskManager from 'expo-task-manager'
import * as BackgroundFetch from 'expo-background-fetch'
import * as Location from 'expo-location'

const LOCATION_TASK_NAME = 'background-location-task'

TaskManager.defineTask('firstTask',({data,errror})=>{
    if(error){
      alert('Something went wrong with background locations')
    }
    if(data){
      alert('Something went right with background locations')
      const{locations} = data
    }
})

export default function App(){

return <AppFile/>

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70336877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档