Android receiver
可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,
而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。
首先谈谈在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);
}
}
关于另外一种,在代码中注册一个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的更多相关文章
- 关于 android receiver
可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidMa ...
- NetScaler Logs Collection Guide
NetScaler Logs Collection Guide 来源 https://support.citrix.com/article/CTX227560 Article | Authentic ...
- android基础(二)Broadcast Receiver知识
1.广播的注册 (1)动态广播注册: 优点:可以灵活控制广播的注册与撤销 缺点:必须在程序启动时才能接收广播 IntentFilter :当Intent在组建之间传递时,组件想告诉android系统自 ...
- Android Broadcast Receiver 使用入门
Broadcast Receiver 的使用 1.Broadcast Receiver简介 2.Broadcast Receiver接收系统自带的广播 3.自 ...
- android 四大组件Broadcast Receiver
本文介绍Broadcast Receiver,包括几部分内容:Broadcast Receiver概述及实例.自定义Broadcast Receiver.Broadcast Receiver的实现细节 ...
- Android Broadcast Receiver
说明 有时候我们在做android系统软件的时候,经常会需要做的事就是开机重新设置上次关机前的状态,当然,我们就会用到这个开机广播: <uses-permission android:name= ...
- android的Broadcast receiver
broadcast receiver是用来监听intent的. android大量使用了broadcast receiver,比如:开机.电话打进来.发送消息,手机电量过低 有两种方式注册broadc ...
- Android Broadcast Receiver注册
之前有关 Broadcast Receiver的链 动态注册 1.我们新建一个广播接受类,我们创建一个内部类让他继承BroadcastReceiver,并且重新其中当有广播来到时执行的方法onRece ...
- Android四大组件--Broadcast Receiver具体解释
本文主要讲述了: 一.BroadcastReceiver概述: 二.BroadcastReceiver事件分类 三.BroadcastReceiver事件的编程流程 四.两类BroadcastRece ...
随机推荐
- git -C
https://git-scm.com/docs/git -C <path> Run as if git was started in <path> instead of th ...
- [SAP ABAP开发技术总结]增强Enhancement
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- hdu 4946 Area of Mushroom(凸包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4946 Area of Mushroom Time Limit: 2000/1000 MS (Java/Ot ...
- iOS - OC Block 代码块
前言 Block 是一段预先准备好的代码,可以在需要的时候执行,可以当作参数传递.Block 可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.Block 是 C 语言的,类似于一个 ...
- iOS - OC 术语表
1.术语表
- iOS - OC 异常处理
1.@try 语句 @try { // Code that can potentially throw an exception 可能会抛出异常的代码块 statement . . . } @catc ...
- JS 命名冲突
1. JS中全局变量和局部变量重名会导致在指定域内无法取到变量: 2. 取出的结果为undefined;
- poj1873The Fortified Forest
链接 居然是WF的水题~ 二进制枚举砍哪些树,剩余的树围成一个凸包. 因为传数组WA了两发,忘记修改排序数组中的p[0]; #include <iostream> #include< ...
- (五)uboot移植补基础之shell
1.shell介绍:shell是操作系统的终端命令行 (1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说它是人机交互的一种方式.(2)我们可以使用shell和操作系统.uboot等软 ...
- iOS开发之 在release版本禁止输出NSLog内容
因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时 ...