动态注册广播

来源:互联网 发布:淘宝商家营销手段 编辑:程序博客网 时间:2024/05/21 10:32

动态注册广播

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);    }    @Override    protected void onDestroy() {        super.onDestroy();        // 一定要注销广播        unregisterReceiver(networkChangeReceiver);    }    class NetworkChangeReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            // TODO 收到广播后执行这里的方法            Toast.makeText(context, "网络发生了变化", Toast.LENGTH_SHORT).show();            // 更友好的写法  需要网络权限            ConnectivityManager connectManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo networkInfo = connectManager.getActiveNetworkInfo();            if (networkInfo != null && networkInfo.isAvailable()) {                Log.e("当前网络状态", "可用");            } else {                Log.e("当前网络状态", "不可用");            }        }    }}

清单文件

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

这里写图片描述

0 0
原创粉丝点击