JobService NETWORK_TYPE_NOT_ROAMING无法在Android 8 Oreo API 26仿真器中运行

时间:2018-03-21 10:07:43

标签: android android-jobscheduler android-8.0-oreo roaming jobservice

如果用户没有漫游,我们的应用会使用作业服务进行后台工作。 这就是我们安排工作的方式:

@input

为了测试这个,我们使用模拟器,启用漫游,wifi未连接,将数据状态设置为漫游并启动应用程序。要触发作业,我们将数据状态更改为搜索然后漫游。在Android Emulator API 24中,Job将触发,一切都很棒。在Android Emulator API 26中,作业不会触发:(

任何想法? :)

1 个答案:

答案 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)

的来源