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.
我的 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.