android学习笔记 动态注册广播例程

Posted before16

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android学习笔记 动态注册广播例程相关的知识,希望对你有一定的参考价值。

public class MainActivity extends AppCompatActivity {
    private NetworkStateChangeReceiver networkStateChangeReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        IntentFilter intentFilter = new IntentFilter();//创建IntentFilter实例
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");//添加action
        networkStateChangeReceiver = new NetworkStateChangeReceiver();//创建NetwokrStateChangeReceiver实例
        registerReceiver(networkStateChangeReceiver, intentFilter);//注册广播接收器
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(networkStateChangeReceiver);//动态注册的广播接收器需要取消注册
    }

    /**
     * 定义NetworkStateChangeReceiver类,继承自BroadcastReceiver
     */
    static class NetworkStateChangeReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
        	//You need to call getSystemService on a Context!!!
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isAvailable()) {
                Toast.makeText(context, "networkInfo: is Available", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(context, "networkInfo: not Available", Toast.LENGTH_SHORT).show();
            }
        }
    }
}

需要在AndriodManifest.xml注册权限

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

AndroidStudio会自动提示,点击Add会自动添加

以上是关于android学习笔记 动态注册广播例程的主要内容,如果未能解决你的问题,请参考以下文章

Android:安卓学习笔记之广播机制的简单理解和使用

Android - 在动态注册的广播接收器上出现“无法传递广播”错误

Android--静态广播和动态广播的区别

《第一行代码》读书笔记二

Android Studio 学习 广播

BroadcastReceiver(广播)的静态注册和动态注册 --Android开发