gpt4 book ai didi

android - 应用程序关闭时 Firebase 作业调度程序未执行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:30 25 4
gpt4 key购买 nike

我已经通过 firebase 作业调度程序设置了一个作业,它应该在 X 小时后执行。当应用程序打开或在后台时它工作正常但当应用程序关闭时它不工作。

很多人都遇到过这个问题,即使这样的问题在 Github 中仍然存在,但我没有找到解决方案。

这是我的代码:

public void setupJob(){
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
final int periodicity = (int) TimeUnit.HOURS.toSeconds(3);
final int toleranceInterval = 30;

Job myJob = dispatcher.newJobBuilder()
.setService(MyScheduler.class)
.setTag("MY_JOB_TAG")
.setRecurring(false)
.setLifetime(Lifetime.FOREVER)
.setTrigger(Trigger.executionWindow(periodicity, periodicity + toleranceInterval))
.setReplaceCurrent(false)
.setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
.build();

dispatcher.mustSchedule(myJob);
}

使 .setRecurring(true) 触发它,但只有在您打开应用程序时才会触发它,然后即使应用程序关闭,它也会重复并正常工作。

请帮忙!

最佳答案

您使用哪个版本的 Android 进行测试?

Android Marshmallow 引入了新的省电功能。其中一项功能是 Doze,当设备长时间未使用时,它通过延迟应用程序的后台 CPU 和网络 Activity 来减少电池消耗。第二个是 App Standby,它推迟用户最近没有交互的应用程序的后台网络 Activity 。

参见:
https://developer.android.com/training/monitoring-device-state/doze-standby.html

还应注意,某些自定义 Android 版本(例如小米的 MIUI、华为的 EMUI)具有允许在后台运行应用程序或接收通知(例如来自 Firebase 云消息传递)的额外权限。

关于android - 应用程序关闭时 Firebase 作业调度程序未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com