美文网首页
Broadcast 动态注册监听网络变化

Broadcast 动态注册监听网络变化

作者: 昨天剩下的一杯冷茶 | 来源:发表于2018-11-06 10:36 被阅读4次

    这个实验只需要建一个工程,布局文件不需要进行任何修改。

    Activity

    package com.example.hzx.mybroadcast;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Toast;
    
    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");
            netWorkChangeReceiver = new NetWorkChangeReceiver();
            registerReceiver(netWorkChangeReceiver, intentFilter);
    
        }
    
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(netWorkChangeReceiver);
        }
    
        class NetWorkChangeReceiver extends BroadcastReceiver {
            public void onReceive(Context context, Intent intent) {
                ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = connectivityManager.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();
                }
    
            }
        }
    }
    
    

    1、 需要注意在AndroidManifest.xml添加权限
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    效果:
    程序隐形后,按下Home健,关闭或者打开WIFI时,会弹出提示。

    相关文章

      网友评论

          本文标题:Broadcast 动态注册监听网络变化

          本文链接:https://www.haomeiwen.com/subject/ljbyxqtx.html