android中的broadcast action

本文详细介绍了 Android 系统中各种 Intent 动作的作用,包括电池状态变化、系统启动完成、配置信息变更等,涵盖了从设备管理到应用生命周期的重要事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android.intent.action.BATTERY_CHANGED
充电状态,或者电池的电量发生变化

android.intent.action.BOOT_COMPLETED
在系统启动后,这个动作被广播一次(只有一次) 

android.intent.action.CFF
语音电话的呼叫转移状态已经改变

android.intent.action.CONFIGURATION_CHANGED 
设备的配置信息已经改变,参见 Resources.Configuration

android.intent.action.DATA_ACTIVITY
电话的数据活动(data activity)状态(即收发数据的状态)已经改变 

android.intent.action.DATA_STATE
电话的数据连接状态已经改变

android.intent.action.DATE_CHANGED
日期被改变

android.server.checkin.FOTA_CANCEL
取消所有被挂起的 (pending) 更新下载 

android.server.checkin.FOTA_INSTALL
更新已经被确认,马上就要开始安装

android.server.checkin.FOTA_READY
更新已经被下载,可以开始安装

android.server.checkin.FOTA_RESTART
恢复已经停止的更新下载

android.server.checkin.FOTA_UPDATE
通过 OTA 下载并安装操作系统更新

android.intent.action.MEDIABUTTON 
用户按下了"Media Button"

android.intent.action.MEDIA_BAD_REMOVAL 
扩展介质(扩展卡)已经从 SD 卡插槽拔出,但是挂载点 (mount point) 还没解除 (unmount)

android.intent.action.MEDIA_EJECT
用户想要移除扩展介质(拔掉扩展卡)

android.intent.action.MEDIA_MOUNTED
扩展介质被插入,而且已经被挂载

android.intent.action.MEDIA_REMOVED
扩展介质被移除 

android.intent.action.MEDIA_SCANNER_FINISHED
已经扫描完介质的一个目录

android.intent.action.MEDIA_SCANNER_STARTED
开始扫描介质的一个目录

android.intent.action.MEDIA_SHARED
扩展介质的挂载被解除 (unmount),因为它已经作为 USB 大容量存储被共享

android.intent.action.MEDIA_UNMOUNTED 
扩展介质存在,但是还没有被挂载 (mount) 

android.intent.action.MWI
电话的消息等待(语音邮件)状态已经改变 

android.intent.action.NETWORK_TICKLE_RECEIVED
设备收到了新的网络 "tickle" 通知

android.intent.action.PACKAGE_ADDED
设备上新安装了一个应用程序包 

android.intent.action.PACKAGE_REMOVED
设备上删除了一个应用程序包

android.intent.action.PHONE_STATE
电话状态已经改变

android.intent.action.PROVIDER_CHANGED
更新将要(真正)被安装 

android.intent.action.PROVISIONING_CHECK 
要求 polling of provisioning service 下载最新的设置 

android.intent.action.SCREEN_OFF
屏幕被关闭

android.intent.action.SCREEN_ON
屏幕已经被打开

android.intent.action.SERVICE_STATE
电话服务的状态已经改变

android.intent.action.SIG_STR
电话的信号强度已经改变

android.intent.action.STATISTICS_REPORT
要求 receivers 报告自己的统计信息 

android.intent.action.STATISTICS_STATE_CHANGED
统计信息服务的状态已经改变 

android.intent.action.TIMEZONE_CHANGED 
时区已经改变

android.intent.action.TIME_SET 
时间已经改变(重新设置)

android.intent.action.TIME_TICK 
当前时间已经变化(正常的时间流逝)

android.intent.action.UMS_CONNECTED
设备进入 USB 大容量存储模式。

android.intent.action.UMS_DISCONNECTED
设备从 USB 大容量存储模式退出

android.intent.action.WALLPAPER_CHANGED 
系统的墙纸已经改变

android.intent.action.XMPP_CONNECTED
XMPP 连接已经被建立

android.intent.action.XMPP_DI 
XMPP 连接已经被断开
### AndroidBroadcast Receiver 的使用 #### 创建广播接收器类 为了响应特定类型的广播消息,在应用程序中需创建继承 `BroadcastReceiver` 类的新类。下面是一个简单的例子,展示了如何定义一个名为 `MyBroadcastReceiver` 的广播接收器: ```java public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "MyBroadcastReceiver", Toast.LENGTH_SHORT).show(); } } ``` 此代码片段实现了当接收到匹配的广播时显示短暂的消息提示[^2]。 #### 注册广播接收器 注册广播有两种方式:静态注册(在清单文件中声明)和动态注册(通过编程的方式)。对于动态注册而言,通常是在活动(Activity)或其他组件内完成如下操作: ```java // 实例化广播接收器对象 MyBroadcastReceiver myReceiver = new MyBroadcastReceiver(); // 定义意图过滤器并指定要监听的动作名称 IntentFilter filter = new IntentFilter("com.example.CUSTOM_ACTION"); // 将广播接收器与应用上下文关联起来 registerReceiver(myReceiver, filter); ``` 需要注意的是,如果采用动态注册,则应在适当时候取消注册以防止内存泄漏等问题的发生。例如可以在 Activity 生命周期结束之前执行注销动作: ```java @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(myReceiver); } ``` #### 发送自定义广播 可以通过构建 `Intent` 对象来携带额外的信息,并利用 `sendBroadcast()` 方法将其发出给其他已订阅该类型广播的应用程序组件: ```java String action = "com.example.CUSTOM_ACTION"; Intent broadcastIntent = new Intent(action); broadcastIntent.putExtra("messageKey", "This is a custom message"); sendBroadcast(broadcastIntent); ``` 这里设置了一个字符串键值对作为附加数据的一部分,任何监听相同动作名(`CUSTOM_ACTION`)的广播接收器都可以获取到这些信息[^3]。 #### 处理不同类型广播 Android 支持两种形式的广播:有序(ordered broadcasts) 和无序(unordered broadcasts)[^4]。前者允许按优先级顺序依次传递给多个接收者;后者则是立即分发至所有符合条件的目标而不考虑先后次序。开发者可以根据实际需求选择合适的形式来进行开发工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值