Android 之 系统广播机制BroadcastReceiver的使用

[size=small][color=olive][b]
BroadcastReceiver :广播接收器
* 除了接收用户发送的广播消息之外,还有一个重要的功能:接收系统广播。通过监听系统, 广播可以在系统特定的时刻执行某些操作;

1、广播处理机制:
* Android中的系统广播是广泛应用于应用程序之间通信的一种手段,它类似于事件处理机制,不同的地方就是广播处理的是系统级别的事件处理
过程,而一般事件是组件级别的;
* 系统广播事件的使用:这些广播是由系统自动发出的,直接定义事件接收器进行接收;

2、 Android中常见的广播Action常量:
* ACTION_TIME_CHANGED :系统时间被改变;
* ACTION_DATE_CHANGED : 系统日期被改变;
* ACTION_TIMEZONE_CHANGED :系统时区被改变;
* ACTION_BOOT_COMPLETED :系统启动完成;
* ACTION_BATTERY_CHANGED : 电池电量改变;
* ACTION_SHUTDOWN : 系统被关闭;
* Action_BATTRY_LOW : 电池电量低;

通过监听特殊的广播,可以实现应用跟随系统执行特定的操作;

3、注册receiver:

a、如何使用代码进行receiver的注册:
/* 通过代码来注册或销毁一个广播接收器 */
/* 使用Activity.onResume()方法中使用Context.registerReceiver()方法进行注册
* 可以在onPause()方法中使用Context.unregisterReceiver(r)来销毁一个广播接收器
*代码示例如下:
* */
public void codeMakeBroadcastReceiver(){
/* 实例化一个IntentFilter对象 */
IntentFilter filter = new IntentFilter();

/* 实例化广播接收器 *//* 自己编写的一个继承了BroadcastReceiver的类 */
SystemBroadcastRec s = new SystemBroadcastRec();

/* 注册receiver */
registerReceiver(s, filter);

/* 注销receiver */
unregisterReceiver(s);
}

b、 <!-- 测试:系统广播事件 注册广播接收器 -->
<receiver android:name=".SystemBroadcastRec">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</receiver>


小贴上:
1、
Android 系统中有非常多的广播,当系统启动或应用运行时便会向 Android 注册各种广播,Android 系统接收到广播后,
会判断哪种广播需要哪种事件。广播事件的筛选由Android 系统完成,在接收广播时,程序员仅需要定义广播的过滤器,
即接收什么样的广播内容。
2、
从定义来讲,广播主要分发送方和接收方,Android中的广播也是如此。Android中广播的接收方处理逻辑相对复杂一些,
首先要注册广播过滤器并继承abstract class BroadcastReceiver实现广播接收的onReceive方法。


使用案例:开机启动Action,动作实现一个提示框,失效系统广播事件处理的效果;
广播接收器java代码部分:[/b][/color][/size]
package com.example.broadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

/* 接收广播 , 该类用于测试系统广播事件 */
public class SystemBroadcastRec extends BroadcastReceiver {

/* 处理系统广播事件 , 执行响应 */
public void onReceive(Context context, Intent intent) {

Toast.makeText(context, "测试系统广播事件,启动时执行....", 6000).show();
}

}


[size=small][color=olive][b]//在AndroidMainfest.xml中进行配置:[/b][/color][/size]

<receiver android:name=".SystemBroadcastRec">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</receiver>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值