英文:
WorkManager NetworkType.CONNECTED constraint met even if I disabled internet connectivity, while using VPN apps causing unexpected retry scheduling
问题
VPN应用似乎破坏了我的应用中WorkManager的NetworkType.CONNECTED约束。因为我已经明确设置了work manager请求的setRequiredNetworkType(NetworkType.CONNECTED)。但是,当我使用VPN应用并关闭互联网时,会被安排重试,并且即使互联网关闭,它仍然继续运行。通常,由于NetworkType.CONNECTED约束,如果关闭互联网,它就不应该运行。这是WorkManager的bug还是VPN应用的预期行为?
英文:
VPN applications seem to break WorkManager's NetworkType.CONNECTED constraint in my app. Because I have set setRequiredNetworkType(NetworkType.CONNECTED) of work manager request explicitly. However, when I'm using VPN apps and turn off the internet, Retry will be scheduled, and keeps on running even when internet is turned off. Normally, due to the NetworkType.CONNECTED constraint, it shouldn't run if internet is turned off. A bug from WorkManager or it's how supposed to be with VPN apps?
答案1
得分: 1
我认为这是WorkManager在这种情况下的正常行为,因为当VPN在您的设备上启动时,它会创建一个虚拟私人网络连接(显然),通过安全服务器路由所有网络流量。这可能会给人一种印象,即即使实际的网络连接(如Wi-Fi或移动数据)未激活,设备仍然在线。因此,即使物理网络连接被禁用,VPN连接仍然可能满足WorkManager的NetworkType.CONNECTED
约束。
换句话说,如果您在VPN处于活动状态时禁用互联网访问,WorkManager可能仍然将VPN连接视为“已连接”,并可能继续重试具有NetworkType.CONNECTED
的任务。
英文:
Okay, that's weird, but I think I got it 👀;
I think this is the normal behavior of the WorkManager in this case because when VPN starts in your device, it creates a virtual private network connection (obviously), which routes all network traffic through a secure server.
Which may provide the impression that the device is online even if the actual network connection (such as Wi-Fi or cellular data) is not active. As a result, even though the physical network connection is disabled, the VPN connection may still satisfy WorkManager's NetworkType.CONNECTED
constraint.
In other words, if you disable internet access while a VPN is active, WorkManager may still regard the VPN connection as "connected" and may continue to retry tasks that have a NetworkType.CONNECTED
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论