Android O 监控网络变化

Android O monitoring network changes

现在推荐的监控 WiFi 网络连接和断开连接的方法是什么?

通常,我会在我的清单中注册一个 BroadcastReceiver 并监听状态变化。

Android O 将使这成为不可能:

Apps cannot use their manifests to register for most implicit broadcasts (that is, broadcasts that are not targeted specifically at the app).

完成相同任务的下一个最佳(电池消耗最少)方法是什么?

我的初步评估是创建一个 Service 来监视网络状态变化。我不喜欢 运行 仅为此目的提供永久服务的想法。

检查这个图书馆 https://github.com/Ahmed-Abdelmeged/Networkito 使用 rxjava 和 Android 架构组件和正常使用

选项 1:您可以在 Java 代码中注册 BroadcastReceiver,例如,在 ActivityonStart() 中注册并在 onStop() 中注销.当然,这仅在您的 Activity 还活着时有效。

选项 2:使用 JobScheduler。您可以根据 JobScheduler 中的可用条件安排作业,例如网络连接可用性。

My initial assessment is to create a Service that will monitor network state changes. I don't like the idea of running a permanent service for this purpose alone.

即使这样也不简单。如果系统发现它处于空闲状态,您的 Service 将被终止。如果您不希望 Service 被终止,则必须启动 Foreground service,但需要注意的是,a 需要向用户显示通知。