Android Broadcas 广播
来源:互联网 发布:python可视化界面设计 编辑:程序博客网 时间:2024/06/05 21:07
一、广播简介
1.Android四大组件之一
2. 一种全局的监听器,用于监听系统全局的广播消息
3. 系统大部分消息都以广播的形式发布,比如开机启动完成的消息,收到短信的消息,打进打出电话的消息。
ex:
android系统每次启动完成会向外广播一条信息,告诉所有人启动完成了,只有继承自Broadcast 的类能捕捉到这些系统信息,捕捉到信息该干嘛就干嘛
二、广播实现(自定义广播接收者和发送者)
三、广播的分类
一般广播的发送者会分为 无序广播 和 有序广播
而接收者一般分为 静态接收者 和 动态接收者
无序广播的发送代码:
//发送广播 //两种类型广播 有序广播 无序广播 Intent intent=new Intent(); //指定广播的名字 intent.setAction("com.example.myas_send.Hug"); //指定广播内容 intent.putExtra("content",content); //发送无序广播 sendBroadcast(intent);
而无序广播的还有一个特殊的种类,叫做“无序黏性广播”
有序广播的区别也只是在于一句发送代码的不同
里面的那个null 是一个指令,可以填写其他的,如果接收者每有添加指令就接收不到发送的信息
接下来我们来讲接收者
先来讲解动态接收者:动态接收者主要是由Java代码编写,需要注册广播和注销广播
上面代码中有一条红色的代码,标识出来主要是因为它只能是接收有序信息的时候用,它的作用是设置优先级,一般优先级为 -1000到1000,-1000为最低,1000为最高。
接下来是静态的接收者:静态接收者主要是在XML文件中配置,这和动态是有区别的
java代码部分主要是用来接收广播发出的信息,下面的代码中我们还做了一个加工,是一个用来拦截垃圾信息的,比如,下面代码中是信息中带“免费”二字的会被拦截,将不会被接收
package com.example.myas_jiesou_02; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; /** * Created by Administrator on 2017/7/11 0011. */ public class MyReceiver02 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action=intent.getAction(); if("com.example.myas_send.Hug".equals(action)){ //获取广播内容 String content=intent.getStringExtra("content"); Log.i("test","广播接受者2号:"+content); //判断 if(content.contains("免费")){ //不传播 abortBroadcast(); } //改变广播的内容 //设置结果 Bundle bundle=new Bundle(); bundle.putString("newContent",content+",开玩笑的,你阔以免费拥有小灰灰"); setResultExtras(bundle); } } }
下面我们来讲讲动态接收和静态接收的区别
一、 动态接收的优先级是大于静态接收的,除非用有序发送时设置了静态接收的优先级大于动态优先级。
二、 静态接收就算关闭了它也能接收到广播发送的信息,而动态接收必须是无序黏性广播发送信息才能在离开时接收到信息。
阅读全文
0 0
- Android Broadcas 广播
- Android Broadcas 广播
- Android Broadcas 广播
- Android中,Broadcas介绍
- android 广播
- android广播
- Android广播
- android广播
- android广播
- android广播
- android 广播
- android 广播
- android 广播
- android广播
- android广播
- android广播
- android 广播
- Android 广播
- 【python】str与json类型转换
- Camera.cullingMask
- 【BZOJ2565】最长双回文串
- 树状数组
- 【android学习】四大组件-BroadcastReceiver(广播接收者)
- Android Broadcas 广播
- hdu5521(集合的dijstra)
- 绝对布局(Relativelayout )和相对布局(Absolutelayout)
- git相关命令
- 操作系统基础学习之进程线程
- STL的list读书笔记
- 水池数目
- 类加载器ClassLoader
- iOS_nil、Nil、NULL、NSNull的区别