首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Evernote Android-作业库时,周期性作业不一致地运行

使用Evernote Android-作业库时,周期性作业不一致地运行
EN

Stack Overflow用户
提问于 2017-11-18 23:20:54
回答 1查看 636关注 0票数 1

通过使用evernote的安卓-作业,我试图安排一个周期作业,每15分钟运行一次。问题是作业运行2-3次,而不是每15分钟运行一次。基本上在8小时内,当设备处于空闲状态时,它运行了近10-11次。我是不是做错了什么。我的工作唯一的要求就是网络应该是连接的。

安卓--作业库会运行吗?这是我的工作代码

代码语言:javascript
复制
   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();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-18 23:36:49

基本上在8小时内,当设备处于空闲状态时,它几乎运行了10-11次。

这听起来像是标准的Doze模式行为,你会在Android 6.0+设备上遇到这种行为。

我认为这就是使用作业调度程序APIs的全部意义。

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

那么,我们如何确保每15分钟运行一次作业?

一般来说,你不知道。

Google希望您停止轮询,切换到Firebase消息传递,用于服务器端推送消息。欢迎您在setAndAllowWhileIdle()/setExactAndAllowWhileIdle()上进行AlarmManager实验。但是,总的来说,对背景的战争处理意味着做周期性的背景工作充其量是困难的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47372131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档