Android N:处理缺少CONNECTIVITY_CHANGE

时间:2016-07-18 09:00:50

标签: android android-7.0-nougat android-jobscheduler

我的AppWidgetProvider(当然是BroadcastReceiver)已注册接收CONNECTIVITY_CHANGE,因此我可以在网络恢复后立即更新小部件(尽管只在需要时,即如果由于缺乏连接而错过了先前的更新。

但是如果列出here,Android N中就不再可能了。建议使用JobScheduler,它允许您指定作业只应在连接到网络时运行通过.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)方法。

但是,我无法看到如何使用它来复制我想要的行为。在我看来,如果在安排作业时没有网络,.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)方法将导致作业根本不运行,并且不会< / strong>让Job耐心等待,直到有网络然后运行(这就是我需要的)。

那么,如何使用Android N保留我需要的行为?

2 个答案:

答案 0 :(得分:0)

我正在使用Job Scheduler,它不依赖于在安排作业时网络是否可用。它提供了一定的条件,当满足这些条件时,就会安排工作。您可以设置重复性作业,并指定作业之间的最小时间间隔。例如,每当我将手机连接到充电PlayStore时,就会开始更新应用,因为Job有充电限制。

如果您安排工作并且不满足条件,它将安排网络何时可用。尝试断开网络并在Facebook上打开某人个人资料。它会要求您加载网络可用性配置文件。现在,连接到网络,您将在加载配置文件后收到通知。

答案 1 :(得分:0)

  

尝试为网络更改添加谷歌ping,这将有助于您   网络变化和所有原因我在开发时遇到同样的问题   与套接字服务。所以它可能也会帮助你。