android——利用广播监听网络状态
2017-01-07 10:10
363 查看
1.先说一下广播,广播分为两种:静态广播和动态广播。静态广播即是静态注册的,而动态广播是代码动态注册。静态注册是通过AndroidManifest注册,是常驻型 ,当应用程序关闭以后,如果还有广播发出,程序也会被系统调用自动运行。动态注册广播不是常驻型广播,广播跟随activity的生命周期变化(一般在ondestory方法注销广播)。
权限 :
3.广播代码如下:
4.动态注册
动态注册需要在你需要接受广播的activity中注册,然后进行你想要的操作。
在ondestory方法里面注销:
5.静态注册
静态注册广播 是一个全局的广播,你的app退出以后,有网络变化,也会发出广播。
在AndroidManifest中注册
权限 :
<uses-permission android:name="android.permission.INTERNET" /><!-- 网络权限 --> ` <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 读取网络状态 -->
3.广播代码如下:
public class NetStateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isAvailable()) { //说明网络是连接的 int type = networkInfo.getType(); switch (type) { case ConnectivityManager.TYPE_MOBILE: //移动网络 break; case ConnectivityManager.TYPE_WIFI: //wifi break; } } else { CustomToast.showToast("网络不可用"); } } }
4.动态注册
动态注册需要在你需要接受广播的activity中注册,然后进行你想要的操作。
private void rigisterReceiver() { IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); mStateReceiver = new NetStateReceiver(); registerReceiver(mStateReceiver,filter); }
在ondestory方法里面注销:
@Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(mStateReceiver); }
5.静态注册
静态注册广播 是一个全局的广播,你的app退出以后,有网络变化,也会发出广播。
在AndroidManifest中注册
<receiver android:name=".broadcast.NetStateReceiver"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
相关文章推荐
- android接收广播监听网络状态变化
- network: android 使用广播监听网络状态
- Android利用广播监听设备网络连接(断网)的变化情况
- Android利用广播监听设备网络连接(断网)的变化情况
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- Android利用广播监听设备网络连接(断网)的变化情况
- 简单 android 广播监听网络状态变化
- Android网络状态广播监听
- android利用广播全局监听网络。
- network: android 使用广播监听网络状态
- android 使用广播监听网络状态
- Android开发之使用广播监听网络状态变化
- 关于android广播包监听网络状态变化收到java.lang.NullPointerException: Error receiving broadcast Intent
- android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- android 使用广播监听网络状态
- android 使用广播监听网络状态
- Android动态注册广播,监听网络状态变化,判断网络模式
- android网络监听状态改变收到2个广播处理