android 51 有序广播

简介:

无序广播:一条广播发送出去,多个接收者接收没有顺序。
有序广播:广播接收者可以设置优先级,优先级高的先收到广播。
有序广播可以设置优先级。

mainActivity.java

复制代码
package com.sxt.day07_06;

import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {
    ThirdReceiver mReceiver;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        registgerReceiver();
        Intent intent=new Intent("com.sxt.day07_06.order_broadcast");
        intent.putExtra("key", "hello java");
        sendOrderedBroadcast(intent, null);//发送有序广播
    }
    //注册第三级别的广播接收者,第一第二级别的广播接收者在系统说明文件中注册,
    private void registgerReceiver() {
        mReceiver=new ThirdReceiver();
        IntentFilter filter=new IntentFilter("com.sxt.day07_06.order_broadcast");//com.sxt.day07_06.order_broadcast广播的字符串
        filter.setPriority(600);//设置优先级
        registerReceiver(mReceiver, filter);
    }
    //java定义的第三级别的广播接收这
    class ThirdReceiver extends BroadcastReceiver{
        public void onReceive(Context context, android.content.Intent intent) {
            Log.i("main","ThirdReceiver.onReceive()");
        };
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mReceiver);//销毁的时候取消注册的广播接收者,释放资源。
    }
}
复制代码

第一个广播接收者:

复制代码
package com.sxt.day07_06;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class FirstReceiver extends BroadcastReceiver {

    @Override
    //优先级第一的广播接收者
    public void onReceive(Context context, Intent intent) {
        String value=intent.getStringExtra("key");//mainActivity的字符串
        Log.i("main","FirstReceiver.onReceive():"+value);
        setResultData("来源于FirstReceiver的文本");//向第二级别的广播接收者发送字符串,
    }

}
复制代码

第二个广播接收者:

复制代码
package com.sxt.day07_06;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class SecondReceiver extends BroadcastReceiver {

    @Override
    //优先级第二的广播接收者
    public void onReceive(Context context, Intent intent) {
        String value=intent.getStringExtra("key");//mainActivity的字符串
        String text=getResultData();//第一级别广播接收者发过来的数据
        Log.i("main","SecondReceiver.onReceive(),intent中携带的文本:"+value+","+text);
        if(isOrderedBroadcast()){//如果收到的广播是有序广播
            abortBroadcast();//终止广播
        }
    }

}
复制代码

系统描述文件:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sxt.day07_06"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.sxt.day07_06.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name="com.sxt.day07_06.FirstReceiver">   注册广播接收者
            <intent-filter android:priority="800">
                <action android:name="com.sxt.day07_06.order_broadcast"/>
            </intent-filter>
        </receiver>
        <receiver android:name="com.sxt.day07_06.SecondReceiver">
            <intent-filter android:priority="700">
                <action android:name="com.sxt.day07_06.order_broadcast"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4893012.html,如需转载请自行联系原作者


相关文章
|
XML 安全 Java
Android Studio App开发之广播组件Broadcast的讲解及实战(包括收发标准、有序、静态广播实现手机震动功能 附源码)
Android Studio App开发之广播组件Broadcast的讲解及实战(包括收发标准、有序、静态广播实现手机震动功能 附源码)
1009 0
|
Java Android开发
说说Android的广播(1) - 普通广播,有序广播和粘性广播
关于Broadcast,有几点需要了解。首先是广播的类型,然后是广播的发送方法,最后是广播是如何被接收的。这三者相辅相承的,比如普通广播和有序广播只有在详细了解了广播的接收过程了之后,才能真正明白它的含义。
6830 0
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
143 11
|
6月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1190 77
|
3月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
164 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
7月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
411 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
7月前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
203 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡