首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在关闭应用时接收Android Nougat的网络丢失回调?

如何在关闭应用时接收Android Nougat的网络丢失回调?
EN

Stack Overflow用户
提问于 2016-09-28 11:06:52
回答 1查看 1.6K关注 0票数 8

我希望在应用程序关闭时,任何网络更改或网络连接丢失都能唤醒我的应用程序的绑定服务。这通常是通过监听CONNECTIVITY_CHANGE广播来实现的,但在Android Nougat中这样做已被弃用。只有当应用程序通过编程创建广播接收器打开时,人们才能收听这些广播,但如果应用程序关闭,也需要唤醒它。

我注意到ConnectivityManager.registerNetworkCallback(NetworkRequest,PendingIntent)方法和它的JavaDoc声明它在应用程序关闭时工作,但当我从我的服务调用它时,它似乎只工作了一次,然后它停止对事件的响应。我看到了类似的问题ConnectivityManager.registerNetworkCallback(NetworkRequest,NetworkCallback),一个棒棒糖功能,只在应用程序打开时工作。如何让这个基于PendingIntent的回调一致地工作?

谷歌建议的所有替代CONNECTIVITY_CHANGE广播的方法都只是检查网络的存在。它们中的大多数是作业调度服务。它们假设CONNECTIVITY_CHANGE广播仅用于等待网络可用性来执行作业。但是,我的应用程序是一个VPN网络实用程序,所以我需要在任何网络更改时得到通知--我不仅仅是在等待网络的出现。

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2018-06-27 06:42:32

您可以让您的服务实现NetworkCallback接口,并在服务的onCreate上使用registerNetworkCallback注册您的回调/服务,然后在onDestroy上注销。

在onAvailable或onLost等回调中,添加您的业务逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39737384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档