我的android学习经历29
四大组件之广播接收者BroadcastReceiver
新建广播接收器
需要新建一个类继承类BroadcastReceiver,并且重写其中的方法onReceive(),不要在这个方法中添加过多的逻辑或者进行任何耗时的操作,因为在广播接收者中是不允许开启线程的。
当接收到指定的广播时就会执行onReceive()方法中的内容。
注册广播接收器可以动态也可以静态。
这里简单介绍一下静态:
在AndroidManifest.xml的<application></application>中间写入<receiver></receiver>,在这个标签中写入你要注册的接收器和要接收的广播
<receiver android:name=".MyBroadcastReceiver">
<intent-filter >
<action android:name="你要接收的广播" />
</intent-filter>
</receiver>
MyBroadcastReceiver为接收器,也就是创建的类。action中的name中写的是要接收的广播,可以是系统广播,也可以是自定义的广播。
有时接收广播是需要权限的,这个需要注意。
新建广播
广播有两种:标准广播和有序广播
标准广播就是任何注册接收此广播的程序都可以接收到,有序广播就是按照优先级进行接收,并且优先级高的可以通过abortBroadcast(),截断广播,后面的接收器将会收不到广播。
广播也是用Intent来写的比如
Intent intent=new Intent("广播名");
sentBroadcast(intent);
上面的广播是sentBroadcast()发出,这个发出的就是标准广播。使用sentOrderedBroadcast()发出的是有序广播。
当发出的是有序广播时,注册的内容就需要添加优先级priority
<receiver android:name=".MyBroadcastReceiver">
<intent-filter android:priority="100" >
<action android:name="你要接收的广播" />
</intent-filter>
</receiver>
本地广播
上面发出的广播都是系统全局广播,很容易出现安全性问题。使用本地广播可以简单解决安全性问题
主要使用一个LocalBroadcastManager来对广播进行管理,并提供了发送广播和注册广播接收器的方法
上面只是简单介绍一下广播接收者,如果有什么问题可以在评论区留言,谢谢!
我的android学习经历29的更多相关文章
- 我的android学习经历
我为什么选择android? 我基本上前一年的时间都是在学习java的语法和线程之类的,没有注意java的分类,所以到现在慢慢接触到深处的时候我了解到,java的优势主要在web,而我不是特别喜欢网页 ...
- 我的android学习经历36
最近把android的基础知识都学的差不多了,也写了许多demo,就想自己写一个app,可是写到后面的时候发现很混乱,所以还是得写一些文档,用xml语言写一下基础的类以及一些其他的东西.所以要想写一个 ...
- 我的android学习经历27
前几天忙着学校的互联网+项目比赛,没有时间学习android和发一些东西,主要是这两天太累了,我是项目组长,好多东西去弄,今天已经交稿去进行初赛. 马上收拾收拾心情,继续我的andorid菜鸟之路 加 ...
- 我的android学习经历23
学习fragment时遇到的问题 这几天学习fragment静态加载时遇到这样的问题: java.lang.RuntimeException: Unable to start activity Com ...
- [转] Android学习系列(29)--App调试的几个命令实践
在Android的应用开发中,我们会用到各种代码调试:其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面 ...
- 我的android学习经历9
给android的activity添加背景图片 1.你可以在网上下载android的图片,也可以制作自己的图片,图片的后缀为.png,也就是png格式的图片(注意图片的大小要适合你的手机屏幕或者AVD ...
- 我的android学习经历7
android签名后报错的问题 Duplicate id @+id/imageView, already defined earlier in this layout,android生成报错 这个是项 ...
- 我的android学习经历5
android在strings.xml文件中,写string对象时,如何加入空格 <string name="password">密 码:</string& ...
- 我的android学习经历40
为listview设置背景,并且不随拖动改变 <ListView android:id="@+id/list_view" android:layout_width=" ...
随机推荐
- User Managerment 职责不能使用的问题
1.此职责默认的是没有启用授权的(grant),需要在系统管理员职责下搜索到对应的菜单,进行grant 2.就算授权后,用户还是不能进行操作,需要进行以下设置: 1. Log into the app ...
- 一、Java基础--01
Java基础测试题分析 第一题是关于基本的算法知识,这个很有必要去掌握以下,在学校也经常听老师们说找工作比试面试会出一些这方面的知识,我拿到的第一题是关于排序的,虽然很简单,但是我还是要提醒一下基础不 ...
- ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误)
在ASP.NET MVC4中微软引入了bundles特性,这个特性可以将服务器端的多个Javascript或多个css文件捆绑在一起作为一个单一的URL地址供客户端浏览器调用,从而减少了页面上Http ...
- Sqlserver Sql Agent Job 只能同时有一个实例运行
Sqlserver Sql Agent中的Job默认情况下只能有一个实例在运行,也就是说假如你的Sql Agent里面有一个正在运行的Job叫"Test Job",如果你现在再去启 ...
- 一般处理程序 ashx中使用外部Session 出现不存在 解决方案
MXS&Vincene ─╄OvЁ &0000004 ─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...
- 常用的rpm和yum的一些命令
常用的rpm命令 rpm -qa | grep coreutils <-- 查看系统上是否已经安装了coreutils rpm -qi coreutils < ...
- Redis常用命令速查 02_转
一.Key Key命令速查: 命令 说明 DEL 删除给定的一个或多个 key,不存在的 key 会被忽略,返回值:被删除 key 的数量 DUMP 序列化给定 key,返回被序列化的值,使用 RES ...
- BZOJ 1036:树的统计Count(树链剖分)
http://www.lydsy.com/JudgeOnline/problem.php?id=1036 题意:中文题意. 思路:也是普通的树链剖分.唯一注意的点是在change函数中 while(t ...
- java面试每日一题13
题目:有一个分数数列2/1.3/2.5/3.8/5.13/8........求出这个数列的前20项之和.运行结果如下32.660263 public class Page80 { /** * * @p ...
- java 面试每日一题
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? import java.util.Scanner; public cl ...