如果用户没有漫游,我们的应用会使用作业服务进行后台工作。 这就是我们安排工作的方式:
@input
为了测试这个,我们使用模拟器,启用漫游,wifi未连接,将数据状态设置为漫游并启动应用程序。要触发作业,我们将数据状态更改为搜索然后漫游。在Android Emulator API 24中,Job将触发,一切都很棒。在Android Emulator API 26中,作业不会触发:(
任何想法? :)
答案 0 :(得分:1)
调用 setRequiredNetworkType 将网络定义为对您的工作的严格要求。如果请求的网络不可用,您的工作将永远不会运行。请参阅setOverrideDeadline(long)以更改此行为。调用此方法将覆盖先前由setRequiredNetwork(NetworkRequest)定义的任何要求;你通常只想调用其中一种方法。
当您的作业在onStartJob(JobParameters)中执行时,请务必使用getNetwork()返回的特定网络,否则您将使用可能不符合此约束的默认网络。
有关详细信息,请转到上述答案https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setRequiredNetwork(android.net.NetworkRequest)
的来源