关闭

Android 四大组件之一BroadcastReceiver

标签: androidbroadcastreceiver
265人阅读 评论(0) 收藏 举报
分类:

BroadcastReceiver广播接受器

BroadcastReceiver简介

  1. 在android中Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的Broadcat进行过滤接受并响应的一类组件。
  2. 广播接收者(BroadcastReceiver)用于接收广播Intent的, 广播Intent的发送是通过调用sendBroadcast/sendOrderedBroadcast来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者(BroadcastReceiver)所接收。

实现一个BroadcastReceiver

定义一个广播实现,用于接受SD卡移除时发送的广播
1. 定义一个类,叫做SDCardReceiver 继承BroadcastReceiver,并覆写onReceive方法

@Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "SD 卡被移除", Toast.LENGTH_LONG).show();

    }
  1. 注册广播接受器
    有两种方式,一个是静态注册,和动态注册
    静态注册:
    1 静态注册 在AndroidManifest.xml 中注册
 <receiver
          android:name="SDCardReceiver" > <intent-filter> <action
         *android:name="android.intent.action.MEDIA_UNMOUNTED"></action> <data
          android:scheme="file"/> </intent-filter> </receiver> 

动态注册:
2动态注册在MainActivity java文件中注册

 IntentFilter filter = new
 IntentFilter("android.intent.action.MEDIA_UNMOUNTED");
 filter.addDataScheme("file"); registerReceiver(new
 SDCardReceiver(), filter);
 System.out.println("广播接收器以注册成功");

注意

★ java代码注册的广播接收者优先级要比清单文件的要高, 但是当前的广播接收者的生命周期的期限和activity是相关联的,activity销毁,广播接收者也就不再起作用。
★ 通过清单文件注册的广播接收者在系统中运行一次后就会被注册到系统中,以后无需运行此广播接受者,但是也可以接收到广播。
★ 接收广播时要注意在清单文件中添加对应的权限。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31177次
    • 积分:793
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:5篇
    • 译文:0篇
    • 评论:1条
    欢迎来Star
    博客专栏