详细描述一下问题:
在代码中用动态注册的方式注册网络变化的广播监听。这时候打开程序,然后锁屏(让屏幕熄灭)。过个一二十分钟,解锁屏幕会收到网络断开的广播,但是网络其实是连着的。
解决:
后来发现是判断网络是否链接的一个方法用错了。代码如下:
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
boolean isConnect = info.isConnected();
是NetworkInfo 类中的判断网络是否可用的方法用错了,应该使用isAvailable() 方法的,但是却使用的是isConnected()方法。
这两个方法具体的区别是什么暂时不知,只知道 isAvailable() 是是否可用,isConnected()是网络是否存在,数据是否可以流通的意思。
ps:在部分手机和4.0以上的手机在锁之后,会因为省电的原因,自动断开网络。
转载请注明原文地址: https://ju.6miu.com/read-300254.html