【发布时间】:2016-11-15 03:34:44
【问题描述】:
在 Nougat 以下的 API 上,您只需在订阅 CONNECTIVITY_CHANGES 的清单中声明一个接收器。这让我可以监听网络连接的变化,无论连接是打开还是关闭,即使我的应用程序没有运行,我也可以执行任务。
在牛轧糖上,这似乎是不可能的。我知道如果有网络连接,Nougat 上的 JobScheduler 可用于在后台执行某些任务,但似乎没有监听网络连接丢失的选项。
换句话说,我希望能够在我的手机失去所有连接(Wi-Fi、LTE 等)时听到声音,并在发生这种情况时在后台执行某些操作。这在牛轧糖上可行吗?
【问题讨论】:
-
您是否尝试过使用
setRequiredNetworkType(JobInfo.NETWORK_TYPE_NONE)创建一个JobInfo并使用setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)创建另一个? -
您可能需要谨慎行事 - 蜂窝设备无线电的更改确实经常发生 - 不要指望它会永远停止,这可能会使用户的电话非常忙碌。
-
@JaredRummler NETWORK_TYPE_NONE 不会像您认为的那样做。它基本上意味着无论你有什么样的网络连接都运行这个工作,而不是意味着:只有在没有网络时才做这个工作
-
@GeorgeYang,啊,好的。这个library 看起来像是使用
NetworkRequest和registerNetworkCallback。也许您可以让服务始终通过网络回调运行。 ¯_(⊙_ʖ⊙)_/¯ -
我觉得你可以手动注册一个
BroadcastReciever。它仍然可以工作,只是清单注册开始失败。
标签: android networking background-process connectivity android-jobscheduler