AndroidN:处理缺失CONNECTIVITY_CHANGE

Android N: dealing with lack of CONNECTIVITY_CHANGE

我的 AppWidgetProvider(当然是 BroadcastReceiver)已注册接收 CONNECTIVITY_CHANGE,这样我就可以在网络恢复后立即更新小部件(但前提是必需,即如果由于缺乏连接而错过了之前的更新)。

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

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

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

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

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

try to add google ping for network change that will help you for network change and all cause i have same issue when i was developing with socket services. So may be it will also helps you.