当应用程序使用 react-native-background-task 在后台运行时如何调用函数?

Posted

技术标签:

【中文标题】当应用程序使用 react-native-background-task 在后台运行时如何调用函数?【英文标题】:How do I call a function when app running in background using react-native-background-task? 【发布时间】:2020-01-17 10:55:06 【问题描述】:

当应用程序在后台运行时,我想使用“react-native-background-task”组件调用componentDidMount() 或任何其他函数。这是我想使用但不知道是否正确的代码:

import BackgroundTask from 'react-native-background-task'

BackgroundTask.define(async () => 
  this.componentDidMount();
  BackgroundTask.finish();
);

export default class MyClass extends Component 
  componentDidMount() 
    this.someTask();
  

【问题讨论】:

【参考方案1】:

你能更具体地解释一下吗?如果你想在应用启动时做任何思考,你可以在 App.js 的 componentDidMount();

componentDidMount() 
    this.job();


async job()
     BackgroundTask.define(() => 
       console.log('Hello from a background task')
       BackgroundTask.finish()
     )

或者:

BackgroundTask.define(() => 
  console.log('Hello from a background task')
  BackgroundTask.finish()
)

class MyApp extends React.Component 
  componentDidMount() 
    BackgroundTask.schedule()
  

  render() 
    return <Text>Hello world</Text>
  

【讨论】:

我刚刚发现,当应用的状态发生变化时,我可以使用 AppState 来调用一个函数。那不是更好的解决方案吗? 其实我不确定哪个更好。

以上是关于当应用程序使用 react-native-background-task 在后台运行时如何调用函数?的主要内容,如果未能解决你的问题,请参考以下文章

应用程序崩溃:当 writeVideoAtPathToSavedPhotosAlbum 使用 ALAssetsLibrary

Flutter:当应用程序在后台时使用路径提供程序

当铃声静音时,如何防止我的应用程序(使用 AVPlayer)静音?

当应用程序从后台删除或设备重启时使用 NSURLSession 恢复任务

当应用程序在后台时,如何使用 cocoalibspotify 播放曲目?

当应用程序处于后台时,没有使用 Firebase 调用 didReceiveRemoteNotification