Android 四大组件学习之BroadcastReceiver一
本节课学习四大组件最后一个, 广播接受者。 顾名思义广播接受者就是接受广播呗。比方在现实社会中,曾经每一个人家都有一台收音机,这可就能够去接受广播发出来的消息。大家都知道。程序世界也是參照的显示生活设计出来的。那在Android系统中也引入了广播这个概念。
那在Android系统中广播有什么作用呢? 举个样例:比方你正在玩游戏或者看视频突然手机电量过低,这时候就会弹出一个框,提醒您手机电量过低,请充电的提示。事实上电量改变就是一种广播类型,当电量过低时。系统就会发生一条广播。这时候正在执行的程序就会收到,同一时候给用户提醒。在Android系统中广播有非常多类型。比方:
开机。关机, 打电话, 发短信,屏幕解锁等。
在举例之前。我们先学会创建一个广播接受者
第一步:
创建一个java类,我取名为MyBroadcastReceiver。同一时候继承BroadcastReceiver
第二步: 当清单文件里注冊(四大组件都须要注冊)
<receiver android:name="com.ui.broadcastreceiver.MyBroadcaseReceiver"></receiver>
第三步:须要配置你接受那种类型的广播。系统中广播那么多。你得指定你究竟要接受那种类型的广播(比方我们接受电池电量过低的广播)
<receiver android:name="com.ui.broadcastreceiver.MyBroadcaseReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_LOW"/>
</intent-filter>
</receiver>
第四步:指定接受广播的权限。这个不是每一个广播都必需要做的。 一般侵犯用户隐私的都需要加上权限,比方接受短信广播
<uses-permission android:name="android.permission.RECEIVE_SMS" />
这种话一个广播接受者就创建成功了。
当系统发送广播的类型正好与你接受的类型一样,这时候我们创建的广播的onReceiver方法就会被调用。
既然学习了怎样创建一个广播接受者。那我们就举例学习接受系统打电话的广播,当用户打电话时就会发出广播,这时候假设注冊接受大电话的广播,就会调用我们的onReceiver方法。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log; public class MyBroadcaseReceiver extends BroadcastReceiver { //当接受到系统打电话的广播后调用
@Override
public void onReceive(Context arg0, Intent arg1) { //得到广播中的电话号码
String number = getResultData();
Log.i("MyBroadcastReceiver", "有电话打出去了,号码是: "+number); }
}
须要到清单文件里去注冊广播接受者。同一时候加上是对那个广告的监听
<receiver android:name="com.ui.broadcastreceiver.MyBroadcaseReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
须要注意的是:须要加上打电话的权限:
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
这时候我们执行起程序后拨打电话:显示效果为:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
是不是非常easy,非常好学。相比Activity。Service以及ContentProvider,广播接受者相比就非常好学。
可是非常好学不代表没用,事实上四大组件都是非常实用的。
Android 四大组件学习之BroadcastReceiver一的更多相关文章
- Android 四大组件学习之BroadcastReceiver三
本节学习广播的分类. 广播分为无序广播和有序广播 无序广播: 广播发送者的action与广播接收者的action都匹配的话,所以广播介绍者都能够收到这条广播,而且没有先后顺序,能够觉得是同一时候收到 ...
- Android 四大组件学习之BroadcastReceiver二
上节学习了怎样创建一个广播.也尝试接受系统打电话的广播. 本节课学习怎样自己定义广播.自己定义广播实质上也就是创建一个发送广播者,创建一个接受该广播者. 那我们就開始行动吧. 先创建一个发送广播的应用 ...
- Android 四大组件学习之BroadcastReceiver四
本节学习系统中特殊的广播接收者. 我们前面几节不是说了,当广播接受者一旦注冊到系统中,当系统发送的广播和你注冊的广播的action匹配时,系统就会启动广播接收者所在的进程.除非用户手动停止广播接收者所 ...
- Android 四大组件学习之Server一
上次学习了Android四大组件Activity之后,我们深刻理解了Activity.这次我们学习四大组件Service. Service与Activity的级别是一样的,都是Android系统不可缺 ...
- android四大组件学习总结以及各个组件示例(1)
android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...
- Android四大组件之一:BroadCastReceiver(广播接收者)
广播接受者是(BroadCastReceiver)是Android中的地大组件之一,之前学习了一些关于BroadCastReceiver方面的知识,今天回过头来发现已经快忘记的差不多了,毕竟现在是刚开 ...
- android四大组件学习总结以及各个组件示例(2)
上篇博文讲解了activity.content provider,此篇博文来仔细总结service.broadcast receiver: 3. Service >什么是服务?>windo ...
- Android 四大组件学习之ContentProvider四
上节我们学习了怎样去读取系统短信以及插入一条短信到系统中. 本节我们学习怎样获取系统的联系人,以及插入一条联系人 好.废话不多说了,直接操作. 首先和读取短信一样,先找到联系人在数据库中的位置. wa ...
- Android 四大组件学习之Activity六
本节学习Activity的状态保存与恢复. 先用样例開始: 布局文件主要是实现例如以下.大家自行编写 Activity逻辑代码: public class FiveActivity extends A ...
随机推荐
- Solr5.2.1+Zookeeper3.4.9分布式集群搭建
1.选取三台服务器 由于机器比较少,现将zookeeper和solr都部署在以下三台机器上.(以下操作都是在172.16.20.101主节点上进行的哦) 172.16.20.101 主节点 172.1 ...
- class文件检查器
Class文件检查器保证装载的class文件内容有正确的内部结构,并且这些class文件互相间协调一致.Class文件检查器实现的安全目标之一就是程序的健壮性.如果某个有漏洞的编译器,或某个聪明的黑客 ...
- PHP实现15位身份证号转18位
PHP实现15位身份证号转18位 参考博客: 作者:selfimpr626 来源:CSDN (根据身份证号计算年龄,15位身份证号码转18位) 原文:https://blog.csdn.net/wei ...
- hdu 2078(DFS)
Matrix Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 3845 Accepted: 1993 Descriptio ...
- AC日记——【模板】二分图匹配 洛谷 P3386
题目背景 二分图 题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式: 第一行,n,m,e 第二至e+1行,每行两个正整数u,v,表示u,v有一条连边 ...
- 在js中为对象添加和删除属性
对于一个普通的js对象: var obj = { name:"mary", age:21 } 如果我们要对它添加新属性的话可以使用下列方式: obj.address = " ...
- Codeforces 599E Sandy and Nuts(状压DP)
题目链接 Sandy and Nuts 题意大概就是给出限制条件求出在该限制条件下树的种数. #include <bits/stdc++.h> using namespace std; # ...
- codevs——2956 排队问题
2956 排队问题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有N个学生去食堂,可教官规定:必须2人或3 ...
- 轻量级Web渗透测试工具jSQL
轻量级Web渗透测试工具jSQL jSQL是Kali集成的一款轻量级的Web渗透测试工具.最初该工具主要实施SQL注入,后来增加更多的功能,扩展形成一个综合性的Web渗透测试工具.Kali提供的版本较 ...
- luogu P1197 [JSOI2008]星球大战
题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过特殊的以太隧道 ...