Android-有序广播明确指定接收者】的更多相关文章

在上一篇博客,Android-有序广播是可以中断的,介绍了 有序广播是可以中断的,但还有一种例外情况:明确指定接收者的有序广播是无法中断的,一定会发送到指定的接收者 AndroidManifest.xml形式订阅两个接收者,两个接收者的 action/data一模一样,只是优先级不一样 MyBroadcastReceiver2 优先级 600 会先接收到 MyBroadcastReceiver1 优先级 200 会后接收到 <!-- 订阅(Xml形式订阅接收者) 注意:订阅的是接收者,和广播发送…
 1  Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2  广播被分为两种不同的类型:"普通广播(Normalbroadcasts)"和"有序广播(Ordered broadcasts)".普通广播是完全异步的,可以在同一时刻(逻辑上)被所有广播接收者接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播:然后有序广…
1. 接收系统的广播步骤 (1)  新建一个类继承BroadcastReceiver 以监听sd卡状态的广播接收者为例 public class SdCardBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if("android.intent.acti…
前言 Google从Android8.0版本开始,对在清单文件中静态注册广播做了限制. *** 特殊广播(动态注册广播接收者) 说:有序广播和无序广播之前,咱们先来说下Android中一些特殊的广播如何接收呢? 特殊的广播:指那些操作比较频繁的广播事件类型.如:屏幕的开.关广播,电量的变化广播等等 这种特殊的广播事件在 AndroidManifest.xml 中注册是无效的! 因为这种特殊的广播如果在清单文件中注册,会浪费内存资源.你可以想象下,如果有100个应用在清单文件中注册了手机电量变化广…
前两篇博文中简单整理了普通广播,其实还有有序广播,有序广播在开发中也是比不可少的,可以给广播接收者设定优先级来控制接受顺序,并却可以中断广播传递等等. 一.两种Broadcast: · 普通广播(Normal Broadcast):用sendBroadcast()方法发送. 普通广播是完全异步的,逻辑上可以在同一时刻被所有匹配的接受者接收到,消息传递效率高,缺点是接受者不能将处理结果传递给下一个接收者,也无法终止广播传播. · 有序广播(Ordered Broadcast):用sendOrder…
之前我们在Android(java)学习笔记178中自定义的广播是无序广播,下面我们要了解一下有序广播:   1.   我们首先了解一下有序广播和无序广播区别和联系? (1) 有序广播> 接受者有优先级,接受按照先后顺序接受,类似中央向下传文件.高优先级的接受者可以把广播消息给拦截,还可以修改广播的数据.(2)无序广播> 接受者没有优先级,没有先后顺序.类似听广播,看新闻联播.不可以被拦截.> sendBroadcast(intent) (3).有序广播和无序广播没有什么本质的区别,相同…
无序广播:一条广播发送出去,多个接收者接收没有顺序.有序广播:广播接收者可以设置优先级,优先级高的先收到广播.有序广播可以设置优先级. mainActivity.java package com.sxt.day07_06; import android.os.Bundle; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import an…
一.标准广播和有序广播也很容易理解的. 标准广播: (1)通过sendBroadcast()方法发送 (2)通过异步方式发送,广播接收者的执行顺序是不明确的 有序广播: (1)通过sendOrderBroadcast()发送 (2)广播接收者需要按照优先级依次执行 (3)可以使用setResultXXX().getResultXXX().abortBroadcast()方法 二.通过简单例子来实现一下标准广播和有序广播 1.很简单的例子,先看一下主布局. 2.主活动需要实现发送标准广播和有序广播…
之前我们在Android(java)学习笔记178中自定义的广播是无序广播,下面我们要了解一下有序广播: 1. 我们首先了解一下有序广播和无序广播区别和联系? (1)有序广播> 接受者有优先级,接受按照先后顺序接受,类似中央向下传文件.高优先级的接受者可以把广播消息给拦截,还可以修改广播的数据.(2)无序广播> 接受者没有优先级,没有先后顺序.类似听广播,看新闻联播.不可以被拦截.> sendBroadcast(intent) (3)有序广播和无序广播没有什么本质的区别,相同点:   …
BroadcastReceiver是Android系统的四大组件之一,BroadcastReceiver是一个全局的系统级监听器,它拥有自己的独立进程. 我们来写一个最简单的广播接收过程 先在manifest中定义一个广播接受者 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name&quo…
上一篇简介了广播的发送,这篇主要介绍下,有序广播的发送. 设置完相关属性的时候,广播就会依照有序的方式进行发送: 发送顺序: 先发送第二条广播: 再发送第一条广播: 最后发送第三条广播. 代码例如以下: 布局文件: activity_main(一个Button): <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a…
普通广播(Normal Broadcast): 一,优缺点:和有序广播的优缺点相反! 二,发送广播的方法:sendBroadcast() 有序广播(Ordered Broadcast): 一,优缺点 优点:1,按优先级的不同,优先Receiver可对数据进行处理,并传给下一个Receiver              2,通过abortBroadcast可终止广播的传播   缺点:效率低   二,发送广播的方法:sendOrderedBroadcast()    三,优先接收到Broadcast…
广播接收者 在Android系统运行时会产生很多事件,事件产生时,回想系统发送广播,只要向系统发送广播,系统就知道发生了相应的事件,从而执行相对应的代码.在系统中只要使用广播接受者,就可以接收广播 创建广播接受者 1.定义Java类继承BroadcastReceiver 2.在清单文件爱中定义receiver节点,定义属性,指定广播接受者Java类的命名 3.在intent-filter的节点中,指定action子节点,action的值必须跟要接受的广播中的action匹配,比如,如果要接受打电…
import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button; public class SortedBroadcast extends Activity…
* 添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/> * 4.0以后广播接收者安装以后必须手动启动一次,否则不生效 * 4.0以后广播接收者如果被手动关闭,就不会再启动了 ------------------------------------------------------------------------ #监听SD卡状态 * 清单文件中定义广播接收者接收的类型,监听SD卡常…
1.Android中广播主要分为两种:标准广播和有序广播. 标准广播:完全异步执行.广播发出后,所有的广播接收器几乎在同一刻收到广播事件,没有先后顺序之分. 优点:效率高 缺点:不能被截断 有序广播:同步执行.广播发出后,优先级较高的广播接收器先接收到广播,执行完该广播接收器的逻辑后广播才会继续传递,优先级较高的接收器可以对广播进行截断组织广播的传递. 2.注册广播的方法:一般有两种 1.动态注册:在代码中注册,必须启动程序才能接收广播 2.静态注册:在AndroidManifest.xml中注…
@@@描述         广播接收器可以收到 Context.sendBroadcast或者Context.sendOrderedBroadcast发出的意图(intent).   @@@LocalBroadcastManager         如果你不需要夸应用发送广播,建议你使用 LocalBroadcastManager, LocalBroadcastManager 是一个帮助类,帮助你方便的在当前应用中注册广播接收  器和发送广播.并且和发送全局广播比起来,他还有如下优势: 1,不用…
广播消息机制用于进行系统级别的消息通知,每个应用程序可以对感兴趣的广播进行注册,并且将接收广播的方法定义在广播接收器中(Broadcast). 广播可以分为标准广播和有序广播. 注册广播的方法可以动态注册(在代码中进行注册)和静态注册(在清单文件中注册) 我们也可以发布自己定义的广播,并接收. 1.动态注册 动态注册的过程: 1)先自己定义一个广播接收者,继承Broadcast.重写onReceive()方法. 2)创建IntentFilter类,并添加要收听的广播. 3)创建自定义的广播接收者…
Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播  -  被广播接收器接收后,可被终止,无法往下继续传达.         典型代表:短信广播 普通广播  -  发送至每一个已经注册(订阅)的广播接收器,无法被终止. 典型代表:开机启动广播 2 广播接收器 - 用于订阅广播后接收广播 静态注册广播 - 在AndroidManifest.xml中设置,程序不用启动亦可接收. 典型代表:很多开机启动的APP,都是接收开机启动广播带起服务的. 动态注册广播 - 代码中注册广…
有序广播可以按一定的优先级进行传播 首先进行发送广播 public void click(View v){ Intent intent = new Intent(); intent.setAction("com.coderwei.orderbroadcast"); sendOrderedBroadcast(intent,null,new FinalReceiver(),null,1,"我是一条有序广播",null); } 上面new FinalReceiver继承于…
静态注册 配置清单表注册:只要曾经注册过哪怕关闭也能调用  方式一:sendBroadCastReceive   广播的步骤:       发送  无序广播,普通广播       (1).发送方          Intent intent=new Intent();          intent.setAction("");发送的内容         sendBroadcast(intent);       (2).接受方       创建一个reserver类继承Broadcas…
(以下内容是阅读郭霖大神的<第一行代码>后自己总结的) 1.概述 广播是Android的四大组件之一. Android的广播机制十分灵活. 2.发送广播 如上图Android的广播主要分为两类:标准广播和有序广播. 所有的广播接收器都可以接收到标准广播,而且他们的接收几乎是在同一时刻.这意味着标准广播的效率很高,但无法被截断. 在接收有序广播时,广播接收器是由先后顺序的,优先级高的接收器先接收到广播,并且有权对该广播截断,不让后续接收器接收到. 发送标准广播和有序广播的方式非常简单. //发送…
广播机制简介 Android的广播可以分为两种类型的,标准广播和有序的广播: 标准广播:  是一种完全异步执行的广播,在广播发出去之后,所有的广播接收器几乎是同一时接收到这条广播. 有序广播:  是一种完全同步执行的广播,在广播发出去之后,同一时刻只有一条消息能接收到这条广播.当这个广播接收器中的逻辑执行完毕之后,广播才会继续传递,所以这个时候的广播接收器是有先后顺序的,优先级高的广播接收器就可以先接收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样的话后面广播接收器就不能接收到广…
sendBroadcast()发生无序广播 sendOrderedBroadcast()发送有序广播 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&quo…
main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id…
// 广播出去,由广播接收器来处理下载完成的文件   Intent sendIntent = new Intent("com.test.downloadComplete");   // 把下载好的文件的保存地址加进Intent   sendIntent.putExtra("downloadFile", file.getPath());   sendBroadcast(sendIntent); <receiver android:name="com.y…
上一节的短信拦截在4.0以上系统中无效,可以使用这种办法实现,定义一个activity,清单文件中指定主题为透明,在onCreate()方法里面直接调用finsh()方法,关掉,这样可以就可以实现了 应用场景:比如车载电脑,里面有很多应用,有些应用需要发射信号给某一个广播接收者 新建一个广播接收者,清单文件中进行配置,监听的动作<action name=”com.tsh.aabb”/>,这个动作名称就是我们自定义广播要发射的动作 新建一个应用,来发射信号 获取Intent对象,通过new出来…
Android中的广播 系统在运行过程中会产生很多事件,某些事件产生的时候,比如:电量的改变,收发短信.拨打电话.屏幕解锁.开机等等,系统会发送广播.只要应用程序接受到这条广播就知道系统发生了相应的事件,从而执行相应的代码.只要在我们的应用中开启的广播接收器就能接收到系统的广播. ip拨号器 通过一个小案例还简述广播接收者的使用方式,功能就是在拨打电话时自动在号码前加特定的数字 布局文件 <?xml version="1.0" encoding="utf-8"…
广播接收者,broadcast receiver,安卓系统在使用时会产生很多的事件,比如:短信到来,电量低,拨打电话等等 界面布局,线性布局,EditText指定为电话号码,设置属性android:inputType=”phone” 获取SharedPreference对象,调用getSharedPreference(“config”,MODE_PRIVATE)方法 获取Editor对象,调用sp对象的edit()方法 调用Editor对象的putString(key,value)方法,存入数据…
Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验.          本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请对比WIFI连接作出调整.       首先写一个WifiStateBroadcast类继承BroadcastReceiver,重写onRecevie方法,获取网络连接状态管理器,通过管理器拿到对应的网络信息,得到网络状态,判断网络状态,作出相应的业务逻辑. public class WifiSta…