我们有一个基于wifi的应用程序,拥有数百万的客户群。应用程序的核心逻辑是将用户连接到具有自动登录功能的公共开放热点。申请完全取决于这些广播。
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>广播后,应用程序将检查连接的wifi热点,并尝试自动登录。
在Android中,应用程序没有接收到上述任何广播。考虑到后台服务的广播接收机解决办法,似乎android正在停止服务的一段时间。
任何建议都是非常感谢的。
发布于 2017-08-22 14:10:29
使用JobScheduler (JobIntentService或Firebase Job Dispatcher进行向后兼容性)。请参考Android开发者的最新视频。
使用JobInfo.Builder.setRequiredNetworkType()方法,您可以安排作业在满足特定网络条件时运行。
引用这条线
网络类型可以是以下三个值之一:
JobInfo.NETWORK_TYPE_UNMETERED可以满足你的需要。
发布于 2018-04-11 12:09:54
发布于 2017-08-22 13:53:23
从医生那里拿来的:
针对Android7.0(APILevel24)及更高级别的应用程序如果在清单中声明广播接收器,则不会接收CONNECTIVITY_ACTION广播。如果应用程序向CONNECTIVITY_ACTION ()注册BroadcastReceiver,并且该上下文仍然有效,它们仍将接收Context.registerReceiver广播。监测连接性中的更改
正如所提到的Docs和CommonsWare (在注释中),使用前台服务并在那里注册您的接收器
https://stackoverflow.com/questions/45819298
复制相似问题