gpt4 book ai didi

android - 使用 Evernote Android-Job 库时,定期作业运行不一致

转载 作者:行者123 更新时间:2023-11-29 19:05:35 36 4
gpt4 key购买 nike

我正在尝试使用 evernote 的 android-job 安排一个周期性作业每 15 分钟运行一次.问题是作业运行 2-3 次,然后不是每 15 分钟运行一次。基本上在 8 小时内,当设备闲置时,它运行了将近 10-11 次。我做错了什么吗?我的工作的唯一要求是应该连接已连接的网络。

android-job 库是否在某种程度上保证作业会运行?这是我的工作代码

   public class TestNetworkJob extends Job {

public static final String TAG = "TestNetworkJob";

@NonNull
@Override
protected Result onRunJob(Params params) {
Timber.i("onRunJob");

RetrofitUtils.getInstance().postSlack("TestCall: " + DateTimeUtils.getLocalizedDateTimeString(System
.currentTimeMillis()));
return Result.SUCCESS;

}

public static JobRequest buildJobRequest() {
return new JobRequest.Builder(TAG)
.setUpdateCurrent(true)
.setRequiredNetworkType(JobRequest.NetworkType.CONNECTED)
.setPeriodic(TimeUnit.MINUTES.toMillis(15))
.build();
}
}

最佳答案

Basically in span of 8 hours it ran almost 10-11 times when the device was sitting idle

这听起来像是标准的打盹模式行为,您会在 Android 6.0+ 设备上遇到这种情况。

I thought that was the whole point of using job-scheduler APIs

哦,$DEITY,不。使用 JobScheduler(或围绕它的包装器)背后的要点是对电池友好。

So how can we make sure a job is run every 15 mins?

一般情况下,您不需要。

Google 希望您停止轮询并切换到 Firebase Cloud Messaging,以获取服务器端推送消息。欢迎您在 AlarmManager 上试用 setAndAllowWhileIdle()/setExactAndAllowWhileIdle()。但是,总的来说,后台处理之战意味着进行周期性的后台工作充其量是困难的。

关于android - 使用 Evernote Android-Job 库时,定期作业运行不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47372131/

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