12 Broadcast Receiver
消息接收器
如何使用Broadcast Receiver
//继承BroadcastReceiver.
注册方式
-
静态注册
AndroidManifest中注册.
-
动态注册
IntentFilter = new IntentFilter(); IntentFilter.addAction("接受对象") registerReceiver("广播接收器对象",IntentFilter)
如何发送广播
创建一个Intent对象
setAction
setBroadcast(intent)
如何接收广播
//重写onReceive(context,intent)--接收广播;
如何关闭广播
unRegisterReceiver("广播接收器对象");
系统广播大全
BroadCast Action
常量名称 | 意义 |
---|---|
ACTION_AIRPLANE_MODE_CHANGED | 判断是否开启“飞行模式” |
ACTION_BATTERY_CHANGED | 监控电池状态改变 |
ACTION_BATTERY_OKAY | 电池脱离“低电量”时达到正常状态 |
ACTION_BOOT_COMPLETED | 在系统完成启动之后触发 |
ACTION_CAMERA_BUTTON | 按下“按照”按钮时触发 |
ACTION_CLOSE_SYSTEM_DIALOGS | 系统关闭时 / 按下 Home 键 /锁屏等使系统窗口关闭的事件时通知 |
ACTION_CONFIGURATION_CHANGED | 当“语言”发生改变时通知(只能通过 registerReceiver 来注册广播,不能在清单文件中注册)【不建议使用】 |
ACTION_DATE_CHANGED | 日期改变 |
ACTION_DEVICE_STORAGE_LOW | 设备内存不足时通知 |
ACTION_DEVICE_STORAGE_OK | 设备内存情况恢复正常时通知 |
ACTION_DOCK_EVENT | Dock 底座 的通知(车载、家用、桌面等底座) |
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE | 安装的 APP 从 SD 卡移动到系统空间 |
ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE | 安装的 APP 从系统空间移动到 SD 卡 |
ACTION_GTALK_SERVICE_CONNECTED | 当 GTalk 连接上的时候通知 |
ACTION_GTALK_SERVICE_DISCONNECTED | 当 GTalk 断开连接的时候通知 |
ACTION_HEADSET_PLUG | 连接上外设的时候通知 ( 耳机等 ) |
ACTION_INPUT_METHOD_CHANGED | 输入法发生改变时通知 |
ACTION_LOCALE_CHANGED | 当前系统区域位置改变时通知 |
ACTION_MANAGE_PACKAGE_STORAGE | 当设备内存不足时 (LOW) ,由用户发起这个广播通知,触发开启包管理器 |
ACTION_MEDIA_BAD_REMOVAL | 未正确移除 SD 卡 ( 正确移除SD 卡的方法 : 设置 --SD 卡和设备内存 – 卸载 SD 卡 ) ,但已把SD 卡取出来时发出的广播广播:扩展介质(扩展卡)已经从 SD 卡插槽拔出,但是挂载点 (mount point) 还没解除 (unmount) |
ACTION_MEDIA_BUTTON | 按 Media 键的时候通知 |
ACTION_MEDIA_CHECKING | SD 卡插入时挂载会发出该通知 |
ACTION_MEDIA_EJECT | 当用户移除掉外部设备 SD 卡的时候,需要在这个广播通知内进行挂载点打开的全部文件的关闭处理,在这个通知中 SD 卡还可以读写,在收到ACTION_MEDIA_REMOVED 、ACTION_MEDIA_UNMOUNTED等广播之后, sd 卡 便不可以读写了! |
ACTION_MEDIA_MOUNTED | SD 卡被成功挂载 |
ACTION_MEDIA_NOFS | 表示 SD 卡存在,但是文件系统不兼容或者尚未格式化 |
ACTION_MEDIA_REMOVED | SD 卡被移除 |
ACTION_MEDIA_UNMOUNTED | SD 卡已卸载 |
ACTION_MEDIA_SHARED | SD 卡进入 USB 连接模式 |
ACTION_MEDIA_UNSHARED | SD 卡退出 USB 连接模式 |
ACTION_MEDIA_UNMOUNTABLE | SD 卡存在,但是无法挂载 |
ACTION_MEDIA_SCANNER_STARTED | 开始扫描 |
ACTION_MEDIA_SCANNER_FINISHED | 结束扫描 |
ACTION_MEDIA_SCANNER_SCAN_FILE | 正在扫描一个文件 |
ACTION_NEW_OUTGOING_CALL | 拨出的电话会通知(可以做拨出电话的拦截) |
ACTION_PACKAGE_ADDED | 有应用程序被添加 |
ACTION_PACKAGE_CHANGED | 有应用程序被改变 |
ACTION_PACKAGE_DATA_CLEARED | 有应用程序数据被清除 |
ACTION_PACKAGE_INSTALL | 有应用程序被安装 ( 监控恶意软件 ) |
ACTION_PACKAGE_REMOVED | 有应用程序被删除 |
ACTION_PACKAGE_REPLACED | 有应用程序被替代 |
ACTION_PACKAGE_RESTARTED | 有应用程序被重启 |
ACTION_POWER_CONNECTED | 外接电源接入(或充电器)时通知 |
ACTION_POWER_DISCONNECTED | 外接电源移除(或充电器)时通知 |
ACTION_PROVIDER_CHANGED | 有的 ContentProvider 有自己的空间,这些空间我们想要接触,当有数据发生改变的时候,我们可以触发这个广播通知。 |
ACTION_REBOOT | 设备重启通知 |
ACTION_SCREEN_ON | 屏幕打开 |
ACTION_SCREEN_OFF | 屏幕关闭 |
ACTION_SHUTDOWN | 系统关机广播 |
ACTION_TIME_CHANGED | 时间改变时通知 |
ACTION_TIME_TICK | 以分钟为单位,一分钟触发一次,(不能在清单文件中定义,只能通过动态注册的方式) |
ACTION_TIMEZONE_CHANGED | 时区改变时通知 |
ACTION_UID_REMOVED | 用户 UID 被移除时通知 |
ACTION_UMS_CONNECTED | 手机已进入大容量模式,但是没有消息说 USB 有没有连上 |
ACTION_UMS_DISCONNECTED | 手机已退出容量模式 |
ACTION_USER_PRESENT | 当用户屏幕解锁后通知 |
ACTION_WALLPAPER_CHANGED | 壁纸改变的通知 |
其他知识
在主线程中执行,超过10秒要新创建线程执行,否则程序会出现卡死现象.