有序广播与无序广播

有序广播:按照优先级一级一级的进行传递,类似红头文件下发,有序广播可以被终止,数据可以被修改

sendOrderedBroadcast

无序广播:类似新闻联播,无论你看不看,其都正常播报,无序广播不能被终止,数据不能被修改

sendBroadcast(intent);

假设在APK-A中实现一个按钮,点击该按钮就会发送一个无序的广播,但是有没有APK接收到该广播,对于发送无序广播的APK并不关心,如果APK-B配置了接收APK-A发送的广播过滤事件,则APK-B可以接收到该广播

APK-A中实现代码:

 public void click(View view)
    {
        Intent intent = new Intent();
        intent.putExtra("name", "发送无序广播的内容");
        intent.setAction("myself.broadcastreceiver");
        sendBroadcast(intent);
    }

APK-B中实现代码:

1、实现一个类继承BroadcastReceiver并且复写onReceive方法

public class ReceiverMyselfBroadCast extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        String name = intent.getStringExtra("name");
        Toast.makeText(context, name, Toast.LENGTH_SHORT).show();
    }
}

2、在AndroidManifest.xml中配置事件过滤器

 <receiver android:name=".ReceiverMyself">
            <intent-filter>
                <action android:name="myself.broadcastreceiver"/>
            </intent-filter>
 </receiver>
时间: 2024-10-13 00:02:25

有序广播与无序广播的相关文章

Android(java)学习笔记179:有序广播和无序广播

之前我们在Android(java)学习笔记178中自定义的广播是无序广播,下面我们要了解一下有序广播:   1.   我们首先了解一下有序广播和无序广播区别和联系? (1) 有序广播> 接受者有优先级,接受按照先后顺序接受,类似中央向下传文件.高优先级的接受者可以把广播消息给拦截,还可以修改广播的数据.(2)无序广播> 接受者没有优先级,没有先后顺序.类似听广播,看新闻联播.不可以被拦截.> sendBroadcast(intent) (3).有序广播和无序广播没有什么本质的区别,相同

17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限

?? 1  Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2  广播被分为两种不同的类型:"普通广播(Normalbroadcasts)"和"有序广播(Ordered broadcasts)".普通广播是完全异步的,可以在同一时刻(逻辑上)被所有广播接收者接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播:然后有序广

BroadCastRecevicer有序广播和无序广播的编写

MainActivity3.java  发送广播意图的Activity public class MainActivity3 extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_ma

android有序广播和无序广播的区别

BroadcastReceiver所对应的广播分两类:普通广播和有序广播. 普通广播通过Context.sendBroadcast()方法来发送.它是完全异步的. 所有的receivers接收器的执行顺序不确定.    因此,所有的receivers接收器接收broadcast的顺序不确定. 这种方式效率更高.但是BroadcastReceiver无法使用setResult系列,getResult系列及abort系列API 有序广播是通过Context.sendOrderedBroadcast来

android86 监听SD卡状态,勒索软件,监听应用的安装、卸载、更新,无序广播有序广播

* 添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/> * 4.0以后广播接收者安装以后必须手动启动一次,否则不生效 * 4.0以后广播接收者如果被手动关闭,就不会再启动了 ------------------------------------------------------------------------ #监听SD卡状态 * 清单文件中定义广播接收者接收的类型,监听SD卡常

无序广播

/** * 发送一条无序广播 * @param v */ public void click(View v){ Intent intent = new Intent(); //如何定义这个action intent.setAction("com.itheima"); //找到 //加点数据 intent.putExtra("name", "每天晚上7点 新闻联播准时开整!!!"); //发送广播 sendBroadcast(intent); }

Android四大组件——BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播

BroadcastReceiver普通广播.有序广播.拦截广播.本地广播.Sticky广播.系统广播 本篇文章包括以下内容: 前言 BroadcastReceiver的简介 普通广播(自定义广播) 有序广播 拦截广播 本地广播 Sticky广播 系统广播 部分源码下载 前言 又是一篇基础总结性的文章来啦,个人强迫症犯了,非得把博客的四大组件模块给补齐了,总结了一下BoradcastReceiver的各种使用,废话不多说,开车啦.博主建议自己敲一遍代码来理解广播,因为里面有很多细节的东西需要注意,

BroadcastReceiver之发送自定义无序广播

首先,发送一个自定义广播:(用sendBroadcast(intent)发送一条无序广播) 1 public void click(View v){ 2 Intent intent = new Intent(); 3 intent.putExtra("msg","我是一条无序广播"); 4 intent.setAction("com.coderwei.myBroadcast"); 5 sendBroadcast(intent); 6 } 然后自定

发送 一个无序广播

Intent intent = new Intent(); intent.setAction("cn.abel.action.broadcast"); intent.putExtra("trainingID", article.trainingID); // 发送 一个无序广播 _activity.sendBroadcast(intent); private class MyBroadcastReciver extends BroadcastReceiver { @