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会自动添加

上一篇:蓝牙通信测试app之蓝牙配对(一)


下一篇:个人冲刺(四阶段)——体温上报app(一阶段)