美文网首页我爱编程
Android 开发学习笔记(三)—— BroadcastRec

Android 开发学习笔记(三)—— BroadcastRec

作者: isletn | 来源:发表于2018-04-12 20:47 被阅读0次
    1. BroadcastReceiver :实际上就是一个广播接收器。
    2. 使用:

    <1> 创建一个BroadcastReceiver的子类,必须实现onReceive()方法

        ```
        public class MyBroadcastReceiver extends BroadcastReceiver {
    
            @Override
            public void onReceive(Context context, Intent intent) {
              // 这里实现收到广播后的逻辑
            }
        }
        ```
    

    <2>注册分两种

    • 静态注册
        <receiver
            android:name=".MyBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.CONFIGURATION_CHANGED"></action>
            </intent-filter>
        </receiver>
      

    这种方式注册,接收器会一直占用内存,不受任何组件生命周期影响,比较耗电。

    • 动态注册
    @Override
        protected void onResume() {
            super.onResume();
            // 首先,实例化我们创建的BroadcastReceiver的子类
            broadcastReceiver = new MyBroadcastReceiver();
            IntentFilter intentFilter = new IntentFilter();
            // 然后,设置接收广播的类型
            intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            // 注册
            registerReceiver(broadcastReceiver, intentFilter);
        }
    @Override
    // 通过动态注册的方法使用BroadcastReceiver 必须要在此方法中注销
        protected void onPause() {
            super.onPause();
            unregisterReceiver(broadcastReceiver);
        }
    

    <3>发送广播

    Intent intent = new Intent();
    // 如果这里设置intentFilter的action与注册时写的一致,那么BroadcastReceiver会接收到这个广播
    intent.setAction(ConnectivityManager.CONNECTIVITY_ACTION);
    sendBroadcast(intent);
    

    <4>系统广播

    系统操作 action
    关闭或打开飞行模式 Intent.ACTION_AIRPLANE_MODE_CHANGED
    充电时或电量发生变化 Intent.ACTION_BATTERY_CHANGED
    电池电量低 Intent.ACTION_BATTERY_LOW
    电池电量充足(即从电量低变化到饱满时会发出广播 Intent.ACTION_BATTERY_OKAY
    系统启动完成后(仅广播一次) Intent.ACTION_BOOT_COMPLETED
    检测网络变化 ConnectivityManager.CONNECTIVITY_ACTION
    按下照相时的拍照按键(硬件按键)时 Intent.ACTION_CAMERA_BUTTON
    屏幕锁屏 Intent.ACTION_CLOSE_SYSTEM_DIALOGS
    设备当前设置被改变时(界面语言、设备方向等) Intent.ACTION_CONFIGURATION_CHANGED
    插入耳机时 Intent.ACTION_HEADSET_PLUG
    未正确移除SD卡但已取出来时(正确移除方法:设置–SD卡和设备内存–卸载SD卡) Intent.ACTION_MEDIA_BAD_REMOVAL
    插入外部储存装置(如SD卡) Intent.ACTION_MEDIA_CHECKING
    成功安装APK Intent.ACTION_PACKAGE_ADDED
    成功删除APK Intent.ACTION_PACKAGE_REMOVED
    重启设备 Intent.ACTION_REBOOT
    屏幕被关闭 Intent.ACTION_SCREEN_OFF
    屏幕被打开 Intent.ACTION_SCREEN_ON
    关闭系统时 Intent.ACTION_SHUTDOWN

    相关文章

      网友评论

        本文标题:Android 开发学习笔记(三)—— BroadcastRec

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