Android学习——动态注册监听网络变化
2017-07-19 15:28
477 查看
新建一个BroadcastTest项目,然后修改MainActivity中的代码,如下:
动态注册的广播接收器一定要取消注册才行,在onDestroy()方法中通过调用unregisterReceiver()方法来实现。
访问系统的网络状态需要声明权限,打开AndroidManifest.xml文件,在里面加入权限,如下:
运行程序,打开数据连接、关闭数据连接,效果如下:
public class MainActivity extends AppCompatActivity { private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter=new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); //广播接收器想要监听什么广播,就在这里添加相应的action networkChangeReceiver=new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver,intentFilter); //调用resigerReceiver()方法进行注册 } @Override protected void onDestroy(){ super.onDestroy(); unregisterReceiver(networkChangeReceiver); } class NetworkChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent){ // Toast.makeText(context,"network changes",Toast.LENGTH_SHORT).show(); ConnectivityManager connectionManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); //得到系统服务类 NetworkInfo networkInfo=connectionManager.getActiveNetworkInfo(); if(networkInfo!=null&&networkInfo.isAvailable()){ Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show(); } } } }
动态注册的广播接收器一定要取消注册才行,在onDestroy()方法中通过调用unregisterReceiver()方法来实现。
访问系统的网络状态需要声明权限,打开AndroidManifest.xml文件,在里面加入权限,如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.administrator.broadcasttest"> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
运行程序,打开数据连接、关闭数据连接,效果如下:
相关文章推荐
- android动态注册广播,监听网络状态变化,判断网络模式
- Android 动态注册监听网络变化实例详解
- Android开发之动态注册监听网络变化
- Android动态注册广播,监听网络状态变化,判断网络模式
- Android中动态(在类中)注册广播接收者,监听网络变化
- Android开发入门之实现动态注册广播监听网络变化
- Android 第十九课 大喇叭--广播机制----动态注册监听网络变化与静态注册实现开机启动
- android动态注册监听网络变化异常
- BroadcastReceiver之动态注册监听网络状态变化
- Android学习小记----监听电量的变化(不能静态注册的广播)
- Android 通过注册广播,实时监听网络连接与断开状态的变化
- Android---动态注册监听网路变化的广播
- Android 广播接收器学习之监听网络变化
- 动态注册广播 监听网络变化
- Android 注册广播,实时监听网络连接与断开状态变化
- 动态注册广播接收器,监听网络变化
- 《第一行代码》5章 动态注册监听网络变化
- 【Android 】注册广播,实时监听网络连接与断开状态变化
- 动态注册监听网络变化
- Android 监听开机广播启动服务 动态注册时间变化监听广播