【发布时间】:2019-04-21 17:55:12
【问题描述】:
我想在我的应用不在前台时检测网络何时发生变化(连接\断开),以便我可以同步用户的数据。
我曾尝试使用broadcast receiver(如this 答案),但当应用程序关闭时(Android N 之后)不再接收广播。它仅在应用程序处于前台时有效。
为了检测后台的连接变化,我尝试使用Job Scheduler(如this 答案)和.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) 参数,但我的问题是工作重复完成(每15分钟),即使用户仍连接到互联网。
我的目标是在重新连接互联网后一次完成该作业,然后停止该作业,直到用户断开连接并再次连接。每次连接到 Internet 时,都应该一次完成这项工作,然后等到重新连接(不要重复)。
是否可以使用Job Scheduler(或任何其他方式)来实现这一点?
【问题讨论】:
-
工作经理是一个不错的选择。因为它将决定运行网络广播还是使用作业调度程序。
标签: android broadcastreceiver jobservice