6

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

但正如这里所说,这在 Android N 中将不再可能。建议使用JobScheduler,它允许您指定作业仅在通过该.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)方法连接到网络时才运行。

但是,我看不出如何使用它来复制我想要的行为。在我看来,如果在调度 Job 的时候没有网络,该.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)方法会导致 Job根本不运行,并且不会导致 Job 耐心等待,直到有网络然后运行(这是我需要的)。

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

4

2 回答 2

0

尝试添加 google ping 以进行网络更改,这将帮助您进行网络更改,所有这些都导致我在使用套接字服务进行开发时遇到同样的问题。所以可能它也会帮助你。

于 2016-07-27T04:47:08.723 回答
0

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

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

于 2016-07-20T19:25:27.430 回答