我的AppWidgetProvider
(当然是BroadcastReceiver
)已注册接收CONNECTIVITY_CHANGE
,因此我可以在网络恢复后立即更新小部件(尽管只在需要时,即如果由于缺乏连接而错过了先前的更新。
但是如果列出here,Android N中就不再可能了。建议使用JobScheduler
,它允许您指定作业只应在连接到网络时运行通过.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
方法。
但是,我无法看到如何使用它来复制我想要的行为。在我看来,如果在安排作业时没有网络,.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
方法将导致作业根本不运行,并且不会< / strong>让Job耐心等待,直到有网络然后运行(这就是我需要的)。
那么,如何使用Android N保留我需要的行为?
答案 0 :(得分:0)
我正在使用Job Scheduler,它不依赖于在安排作业时网络是否可用。它提供了一定的条件,当满足这些条件时,就会安排工作。您可以设置重复性作业,并指定作业之间的最小时间间隔。例如,每当我将手机连接到充电PlayStore时,就会开始更新应用,因为Job有充电限制。
如果您安排工作并且不满足条件,它将安排网络何时可用。尝试断开网络并在Facebook上打开某人个人资料。它会要求您加载网络可用性配置文件。现在,连接到网络,您将在加载配置文件后收到通知。
答案 1 :(得分:0)
尝试为网络更改添加谷歌ping,这将有助于您 网络变化和所有原因我在开发时遇到同样的问题 与套接字服务。所以它可能也会帮助你。