【问题标题】:Intentservice in JobScheduler's contextJobScheduler 上下文中的 Intentservice
【发布时间】:2018-04-05 04:43:44
【问题描述】:

在我们的应用中,我们有定期同步任务。所以我们实现了作业调度器来触发每个同步间隔。当作业被解雇时,我们正在启动一个意图服务并且该作业被终止。 Intent 服务从 Internet/Server 启动 3rd 方同步

问题:

  1. 这种设计适合奥利奥和牛轧糖吗?

  2. 如果 Intent 服务需要几分钟才能完成,系统会允许吗?

参考:Medium link

【问题讨论】:

    标签: android job-scheduling android-8.0-oreo android-intentservice android-8.1-oreo


    【解决方案1】:

    如果您的作业意图服务依赖于网络限制,您需要设置 setRequiredNetworkType,因为在 oreo 开发中针对作业调度程序进行了一些新更改,您应该根据您的流程选择该部分,请注意考虑到这一点

    调用 setRequiredNetworkType 将网络定义为您工作的严格要求。如果请求的网络不可用,您的作业将永远不会运行。请参阅 setOverrideDeadline(long) 以更改此行为。调用此方法将覆盖之前由 setRequiredNetwork(NetworkRequest); 定义的任何要求;您通常只想调用其中一种方法。

    当你的作业在 onStartJob(JobParameters) 中执行时,一定要使用 getNetwork() 返回的特定网络,否则你将使用可能不满足此约束的默认网络。 p>

    有关更多详细信息,请访问上述答案的来源https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setRequiredNetwork(android.net.NetworkRequest)

    【讨论】:

    • 但我的问题是,我应该执行 onStartJob() 中的所有同步功能,还是启动 intentService 将与此等价?顺便说一句,感谢您提供截止日期和 getNetwork() 等额外信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多