网络后台任务的最佳解决方案

时间:2018-03-22 13:13:13

标签: android android-background

我们正在开发一个应用程序:

  • 在后台收集数据
  • 每隔几个小时上传一次数据

我们正面临一个后台任务的问题,该后台任务定期运行以将数据上传到我们的后端服务器。

问题是在我们的测试设备(Nexus 5x,Galaxy S7)上运行时它上传的数据很好,但在我们发布的版本中,大约有40%的用户没有将数据上传到我们的服务器内一天。我们正在使用Firebase Analytic和事件记录来验证我们的方法是否正常工作。

我们正在使用作业调度方法,因为我们不能在Android 8上使用后台服务(后台服务限制)。

在我们的最新版本中,我们使用Android JobScheduler作业进行网络后台任务。

以下是我们代码的示例:

Snd_Mer_Vol_Output = Snd_Mer_Vol_Output.rename(columns={'(1,Snd_Mer_Vol_Probability')': 'Snd_Mer_Vol_Probability'})


File "<ipython-input-28-057b6859dfa6>", line 1
Snd_Mer_Vol_Output = Snd_Mer_Vol_Output.rename(columns={'(1, 'Snd_Mer_Vol_Probability')': 'Snd_Mer_Vol_Probability'})
                                                                                        ^
SyntaxError: invalid syntax

Firebase Analytic的统计数据显示,一天内40%的用户无法开始工作(onStartJob未被调用)。

我们考虑到用户设备可能没有互联网连接,设备可以进入打盹模式或应用处于应用待机状态。

我们想知道我们的解决方案是否有任何问题,以及我们的用例是否有更好的解决方案。我们希望应用程序正确发送我们在一天内收集的数据。

1 个答案:

答案 0 :(得分:0)

Framework Job Scheduler的目标是API级别21.如果设备小于API级别21,则不会触发作业。

请在应用中查看链接作业调度以获得更好的性能。

Intelligent Job Scheduling

Firebase JobDispatcher支持将Google Play服务用作调度(运行)作业的实现,但该库还允许您定义和使用其他实现:例如,您可能决定使用JobScheduler或编写自己的自定义码。由于这种多功能性,如果您的应用针对的Android版本低于5.0(API级别21),我们建议您使用此Firebase JobDispatcher。