java - 当 Wifi 状态发生变化(连接或断开网络)时如何触发 JobScheduler?

标签 java android kotlin android-jobscheduler

我想在 Wifi 连接到某个路由器或从某个路由器断开连接时运行一段代码。我可以使用服务和 BrodcastReceiver 来实现此目的,但从 Oreo 开始,该服务会在应用程序关闭几分钟后被终止(除非在前台)。因此,我尝试使用 JobScheduler 来执行此操作,但我无法弄清楚为执行我的作业提供哪些触发器。

最佳答案

Android 不想在每次网络发生变化时都运行您的代码。这些更改可能每分钟发生几次,并且您的代码将导致过多的电池消耗。

您能做的最好的事情就是安排您的作业定期运行(时间间隔不能太短 - 如果您请求的时间少于 15 分钟,您将无法定期获得它)并检查其中需要什么。您可以请求作业仅在有网络连接时运行,反之则不然(在没有网络连接时运行)。

关于java - 当 Wifi 状态发生变化(连接或断开网络)时如何触发 JobScheduler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48277348/

相关文章:

java - 使用带有观察者模式的 MVC 模式构建 Swing GUI

java - 在 codhaus 和 fastexml 上使用 lombok 的 Jackson ObjectMapper 默认值

java - 无法将 java.lang.Integer 转换为 int

java - Spring security + sendRedirect 不起作用

android - "GET PROCESSING OPTIONS"总是6700(错误的Lc或Le)

android - Kotlin Android Retrofit 2.6.0 与协程错误处理

android - Kotlin - 具有通用返回类型的抽象函数

java - Rx Java mergeDelayError 未按预期工作

android - okHttp 是 Android 的一部分吗?

kotlin - 如何在 Kotlin 中惯用地测试非空、非空字符串?