可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。 1.
首先谈谈在androidManifext.xml中注册一个receiver, 例如我们想监听相机按钮按下事件的发生,并且发生后调用我们的camera程序
<receiver android:name="CameraButtonIntentReceiver">             <intent-filter>

可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。 1.
首先谈谈在androidManifext.xml中注册一个receiver, 例如我们想监听相机按钮按下事件的发生,并且发生后调用我们的camera程序
<receiver android:name="CameraButtonIntentReceiver">             <intent-filter>                 <action android:name="android.intent.action.CAMERA_BUTTON"/>             </intent-filter> </receiver>
另外,当程序需要使用手机相关的服务, 如电话、短信、因特网等功能时,就得在Manifest中添加对于的user-permission。
在这个配置文件中声明了一个receiver用来监听相机的按键事件,所以还需要在代码文件定义与配置文件中同名的receiver:
public class CameraButtonIntentReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {     Intent i = new Intent(Intent.ACTION_MAIN);         i.setClass(context, Camera.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);         context.startActivity(i); } }
2.       关于另外一种,在代码中注册一个receiver,例如我们想在代码文件中监听电池电量的变化,就可以按照如下方法 private final BroadcastReceiver mBatteryReceiver = new BroadcastReceiver() {        @Override         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();               if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {               …
              }         } }
这种方法需要在onCreate 或者onStart中注册该receiver所感兴趣的intent,如: registerReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);
在onStop及onDestroy中注销监听
unregisterReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);

系统广播可以捕捉系统发出的行为有: 1. “android.provider.Telephony.SMS_RECEIVED” 收到短信 2. Intent.ACTION_BATTERY_CHANGED 剩余的手机电池量 3. Intent.ACTION_MEDIA_MOUNTED  SD卡成功挂载 4. Intent.ACTION_MEDIA_UNMOUNTED SD卡未挂载
5. Intent.ACTION_NEW_OUTGOING_CALL拨打电话 6. Intent.ACTION_PACKAGE_ADDED执行安装 7. Intent.ACTION_PACKAGE_REMOVED 执行卸载

关于 android receiver的更多相关文章

  1. Android receiver

    可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件, 而如果在androidM ...

  2. NetScaler Logs Collection Guide

    NetScaler Logs Collection Guide 来源  https://support.citrix.com/article/CTX227560 Article | Authentic ...

  3. android基础(二)Broadcast Receiver知识

    1.广播的注册 (1)动态广播注册: 优点:可以灵活控制广播的注册与撤销 缺点:必须在程序启动时才能接收广播 IntentFilter :当Intent在组建之间传递时,组件想告诉android系统自 ...

  4. Android Broadcast Receiver 使用入门

    Broadcast Receiver 的使用        1.Broadcast Receiver简介        2.Broadcast Receiver接收系统自带的广播        3.自 ...

  5. android 四大组件Broadcast Receiver

    本文介绍Broadcast Receiver,包括几部分内容:Broadcast Receiver概述及实例.自定义Broadcast Receiver.Broadcast Receiver的实现细节 ...

  6. Android Broadcast Receiver

    说明 有时候我们在做android系统软件的时候,经常会需要做的事就是开机重新设置上次关机前的状态,当然,我们就会用到这个开机广播: <uses-permission android:name= ...

  7. android的Broadcast receiver

    broadcast receiver是用来监听intent的. android大量使用了broadcast receiver,比如:开机.电话打进来.发送消息,手机电量过低 有两种方式注册broadc ...

  8. Android Broadcast Receiver注册

    之前有关 Broadcast Receiver的链 动态注册 1.我们新建一个广播接受类,我们创建一个内部类让他继承BroadcastReceiver,并且重新其中当有广播来到时执行的方法onRece ...

  9. Android四大组件--Broadcast Receiver具体解释

    本文主要讲述了: 一.BroadcastReceiver概述: 二.BroadcastReceiver事件分类 三.BroadcastReceiver事件的编程流程 四.两类BroadcastRece ...

随机推荐

  1. 调用布局View的performClick()方法

    修改之前的xml片段.             <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/an ...

  2. linux 常见音乐、视频播放器简介

    2007-1-15 10:00:22     常见音乐播放器     xmms一族     xmms全称是X Multimedia System,这个经典的播放器可能是每个linux的使用者或多或少都 ...

  3. sikuli 如何 清空文本框中的内容??解决方法!

    Screen s = new Screen(); s.click("name.png"); s.type("a",KeyModifier.CTRL); s.ty ...

  4. C++的iostream标准库介绍+使用详解(转)

    0 为什么需要iostream 我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的 stdio库不同,它从一开始就是 ...

  5. c# 中内部类的简单介绍 C#内部类

    最近在看java一方面的书籍,看到一个很奇怪的问题,java类中还可以再定义一个类,这种结构非常特殊!后来才发现我知识浅薄了,原来C#中也有内部类,之前都一直没有注意过这个语法结构! 使用内部类有这样 ...

  6. Python学习笔记001——Linux

    Linux文件系统采用树形目录结构,系统中一切皆文件.文件名字母区分大小写 Linux命令使用格式(终端窗口) 命令名 [选项] [参数] 命令名:在命令行输入命令. 备注:命令名字母区分大小写, 1 ...

  7. thinkphp日志分析

    #!/usr/bin/perl -w use strict; use warnings; use Tie::File; #### # Thinkphp日志分析 # 日志基本格式:{$now} &quo ...

  8. eclipse导入class文件

    右键src文件夹->build path->config build path->library->add class folder->create new folder ...

  9. Jquery常用开发插件收集

    2013年7月4日11:11:23 因为在做上传的时候,表单异步提交的时候 input 的 type等于file时候,异步提交不上去 所以使用 jquery.form.js  辅助一下 学习地址: h ...

  10. Openssl aes加解密例程 更进一步

    原文链接: http://blog.csdn.net/itmes/article/details/7718427 前面我们用openssl的aes256对称加密算法对16个字节的内存块进行了的加解密运 ...