在本机中安排任务的最佳方法是什么?

问题描述 投票:16回答:2

在Android和iOS中分别在后台运行任务有不同的方法。我在堆栈溢出时也找到了What is the best way to schedule task in android?

我想知道哪个是使用react-native的最佳方式。将setIntervalsetTimeout用于必须每天或每隔几小时运行的任务是否足够好?

这些任务不会被操作系统杀死吗?

任何想法或建议?

react-native react-native-android
2个回答
19
投票

我将回答我自己的问题,看看这些信息是否可以被任何寻找它的人使用。

由于不同的移动操作系统倾向于杀死后台作业,或者使它们停止以节省电池,因此很少有确定性的方法可以在本机中调​​度任务。我使用以下组合:

小心龙:如果在系统唤醒后滥用执行时间或内存使用量,您的应用可能会被关闭。手机没有电池后,您可能需要为所有听众补充水分。因此,用户仍需要与您的应用进行大量互动。

更新:从Android O开始,有非常严格的后台执行限制。使用HeadlessJSTask服务时,如果您希望它持续时间超过几秒,请确保将其作为前台服务启动。它可能需要通知它。考虑到只加载捆绑包可能需要几秒钟,具体取决于您的应用和设备。


0
投票

事实上,没有足够的方法。但是我们可以将mauron85评为一种比android更好的方式,但它也不能在IOS上完美运行。例如,如果应用程序已被用户杀死,则作业将无法继续工作,或者对作业执行数量没有任何控制,则每次设备更改其位置时都会触发作业。

其他组件,如react-native-background-fetch和react-native-background-task都有作业执行期限(每15分钟后重复一次,并且没有办法减少这段时间),他们只是在android上运行。

如果Facebook本身有一些解决这个问题的实用解决方案,那将会很棒。

© www.soinside.com 2019 - 2024. All rights reserved.