文档章节

四大组件之BroadcastReceiver

Ethan-GOGO
 Ethan-GOGO
发布于 2017/01/05 21:21
字数 400
阅读 2
收藏 0

 

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //动态注册广播接受者,优先级高于静态注册
        IntentFilter intentFilter = new IntentFilter("BC_One");
        BC2 bc2 = new BC2();
        registerReceiver(bc2,intentFilter);
    }

    public void doClick(View v){
        switch (v.getId()){
            case R.id.button:
                //普通广播
                Intent intent = new Intent();
                intent.putExtra("msg","这是一条普通广播");
                intent.setAction("BC_One");
                sendBroadcast(intent);
                break;
            case R.id.button2:
                //有序广播
                Intent intent2 = new Intent();
                intent2.putExtra("msg","这是一条有序广播");
                intent2.setAction("BC_Two");
                sendOrderedBroadcast(intent2,null);
                break;
            case R.id.button3:
                //异步广播 可以先发送再注册
                Intent intent3 = new Intent();
                intent3.putExtra("msg","这是一条异步广播");
                intent3.setAction("BC_Three");
                sendStickyBroadcast(intent3);
                IntentFilter intentFilter = new IntentFilter("BC_Three");
                BC3 bc = new BC3();
                registerReceiver(bc,intentFilter);
                break;
            default:
                break;
        }
    }
}


//配置文件
        /** priority -- 优先级
          * 静态注册
          */
        <receiver android:name=".BC1">
            <intent-filter android:priority="100">
                <action android:name="BC_One"/>
            </intent-filter>
        </receiver>
        <!--<receiver android:name=".BC2">-->
            <!--<intent-filter android:priority="200">-->
                <!--<action android:name="BC_One"/>-->
            <!--</intent-filter>-->
        <!--</receiver>-->
        <receiver android:name=".BC3">
            <intent-filter android:priority="200">
                <action android:name="BC_Two"/>
            </intent-filter>
        </receiver>
        <receiver android:name=".BC4">
            <intent-filter android:priority="100">
                <action android:name="BC_Two"/>
            </intent-filter>
        </receiver>



//普通广播接收
public class BC1 extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {

        String s = intent.getStringExtra("msg");
        System.out.println("receive1收到的信息:"+s);
    }
}
public class BC2 extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {

        String s = intent.getStringExtra("msg");
        System.out.println("receive2收到的信息:"+s);
    }
}

//有序广播接收
public class BC3 extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {

        String s = intent.getStringExtra("msg");
        System.out.println("receive3收到的信息:"+s);

        Bundle bundle = new Bundle();
        bundle.putString("test","拦截广播添加数据");
        setResultExtras(bundle);
    }
}
public class BC4 extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {

        String s = intent.getStringExtra("msg");
        System.out.println("receive4收到的信息:"+s);

        Bundle bundle = getResultExtras(true);
        String s2 = bundle.getString("test");
        System.out.println("得到的处理结果是: "+s2);
    }
}

//异步广播接收
public class BC5 extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {

        System.out.println("收到异地广播");
    }
}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: RN文件上传
Ethan-GOGO
粉丝 13
博文 174
码字总数 82033
作品 0
广州
私信 提问
Android 四大组件(四)BroadcastReceiver

转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/75449100 Andorid四大组件Activity、Service、ContentProvider都已经总结了,详情可以参考如下: Android 四大组件(一...

VNanyesheshou
2017/07/20
0
0
要点提炼|开发艺术之四大组件

提到四大组件大家肯定再熟悉不过了,本篇侧重于对四大组件工作过程的分析: 概述 工作过程 Activity Service BroadcastReceiver ContentProvider 1.概述 a.Activity 类型:展示型组件。 作用...

minmin_1123
2017/12/27
0
0
通读《疯狂Android讲义》笔记 01 ___Android基础篇

文 | 莫若吻 注: 1.本文内容参考 李刚的《疯狂Android讲义》一书。 2.此书适合有一定Java基础、初学Android的同学阅读与学习。我最近想巩固下Android基础知识就来拜读一下此书。 3.本文笔记...

莫若吻
2017/11/06
0
0
Android Studio教程02-应用程序结构图及应用基础

目录 1. Android应用程序开发技术结构图 2.Android的应用基础 2.1. Android的四大组件: 2.2.启动四大组件的方法 2.3. 清单文件 1. Android应用程序开发技术结构图 一、应用程序层 该层提供一...

Bricker666
01/16
0
0
使用广播-BroadcastReceiver最详细解析

女孩:BroadcastReceiver是什么呀? 男孩:Broadcast是广播的意思,在Android中应用程序之间的传输信息的机制,BroadcastReceiver是接收广播通知的组件,广播和广播接收器是Android中需要了解...

达叔小生
2018/07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据剖析热点新闻:996、巴黎圣母院、奔驰维权为什么成为本周热搜

智能大数据专家表示:每一段重要的时期都会有一串隐秘的数字密码,请往下看: 本周共有50条新闻,作为嗅嗅的样本进行数据分析,得出以下统计图: 1.新闻热词折线统计图 在新闻标题及正文中,...

forespider
57分钟前
1
0
Coding and Paper Letter(六十四)

资源整理。 1 Coding: 1.交互式瓦片编辑器。 tile playground 2.R语言包autokeras,autokeras的R接口。autokeras是一个开源的自动机器学习的软件。 autokeras 3.斯坦福网络分析平台,用于网络...

胖胖雕
今天
1
0
最简单的cd命令是个大坑!

BASH Shell 是大多 Linux 发行版的默认 shell,BASH 有一些自己的内置命令,cd 就是其中的一个。 在centos6里面,系统中不存在 cd 的二进制文件。但是你仍然可以运行该命令,这是因为 cd 是 ...

gaolongquan
今天
1
0
spring获取bean的几种方式

使用jdk:1.8、maven:3.3.3 spring获取Bean的方式 pom.xml文件内容: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="......

Vincent-Duan
今天
3
0
一段话系列-Linux中IO的同步、异步、阻塞、非阻塞

首先我们框定一下背景,我们探讨的是Linux系统下的IO模型。 同步和异步是针对内核操作数据而言的,同步是指内核串行顺序操作数据,异步是指内核并行(或并发)操作数据,然后通过回调的方式通...

EasyProgramming
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部