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
,例如,在 Activity
的 onStart()
中注册并在 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 需要向用户显示通知。
现在推荐的监控 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
,例如,在 Activity
的 onStart()
中注册并在 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 需要向用户显示通知。