1、静态广播

1、创建一个MyBroadcastReceiver

public class MyBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context,"我接收到广播了",Toast.LENGTH_SHORT).show();}
}

MyBroadcastReceiver继承BroadcastReceiver ,重写onReceive方法用来接收广播

2、在AndroidMainfast中注册Broadcast

  <receiver android:name=".MyBroadcastReceiver"android:exported="true"><intent-filter><action android:name="com.example.broadcasttest.MY_BROADCAST"/></intent-filter></receiver>

意思是让MyBroadcastReceiver接受一条com.example.broadcasttest.MY_BROADCAST的广播

3、发送广播

Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
//发送默认(无序)广播
sendBroadcast(intent);
//发送有序广播
sendOrderedBroadcast(intent,null);

4、有序广播

如果发送有序广播可以在AndroidMainfast里面通过priority设置广播的优先级

  <receiver android:name=".MyBroadcastReceiver"android:exported="true"><intent-filter android:priority="100"><action android:name="com.example.broadcasttest.MY_BROADCAST"/></intent-filter></receiver>

在MyBroadcastReceiver通过abortBroadcast截断广播

public class MyBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context,"我接收到广播了",Toast.LENGTH_SHORT).show();abortBroadcast();}
}

2、动态广播

1、创建一个MyBroadcastReceiver

    private class NetworkChangeReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//            Toast.makeText(context,"network change",Toast.LENGTH_SHORT).show();ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);@SuppressLint("MissingPermission") NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();if (networkInfo !=null && networkInfo.isAvailable()){Toast.makeText(context,"网络已连接",Toast.LENGTH_SHORT).show();}else{Toast.makeText(context,"网络已断开",Toast.LENGTH_SHORT).show();}}}

MyBroadcastReceiver继承Broadcast,重写onReceive方法用来接收广播。在onReceive方法里面写了一个对网络开关做出反应的代码

2、在onCreate方法里面注册广播

 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_broadcast);intentFilter = new IntentFilter();intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");networkChangeReceiver = new NetworkChangeReceiver();registerReceiver(networkChangeReceiver,intentFilter);}

3、在onDestroy方法里面销毁广播

    @Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(networkChangeReceiver);}

广播(Broadcast)的发送与接收相关推荐

  1. SOCKET实现广播(BoardCast)的发送和接收 (转)

    SOCKET实现广播(BoardCast)的发送和接收 (转)[@more@] 这两天很多人在问怎么样用SOCKET实现广播(BoardCast) 正好我做过这方面的程序,这里用最简单的代码写一个广播 ...

  2. Android深入四大组件(八)广播的注册、发送和接收过程

    前言 我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册.接收和发送过程.建议阅读此文前请先阅读Android深入理解四大组件系列的文章,知识重复的部分, ...

  3. Android-Framework学习笔记(九)—— Broadcast的注册、发送和接收过程

    系列文章 Android-Framework学习笔记(一)-- Android系统架构 Android-Framework学习笔记(二)-- Zygote进程启动过程 Android-Framewor ...

  4. Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇

    接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 ...

  5. Boardcast Receiver 源码分析:广播的动态注册、发送和接收过程

    文章目录 动态注册过程 ContextWrapper#registerReceiver(以下代码基于API26) ContextImpl#registerReceiver ContextImpl#re ...

  6. Android再进阶之广播发送、接收和注册过程

    广播的注册分为静态注册和动态注册,静态注册在应用安装的时候由PackageManagerService来完成注册.这里只介绍动态注册. 动态注册 调用registerReceiver方法,它在Cont ...

  7. [2021.11.6]使用BroadcastReceiver发送和接收广播

    1 BroadcastReceiver简介 BroadcastReceiver类是所有广播接收器的抽象基类,子类对接收的广播进行筛选并做出响应.广播接收器的生命周期短,当广播消息到达时,调用onRec ...

  8. Android源码分析之广播的发送和接收流程

    说明:本文是基于Android6.0源码来分析的 概要 我的理解是,Android中的广播可以看为一种消息机制,用来在一定的条件下触发一些操纵,比如:网络状态的改变,熄屏,亮屏等等Android系统都 ...

  9. 品茗论道说广播(Broadcast内部机制讲解)

    1 概述 我们在编写Android程序时,常常会用到广播(Broadcast)机制.从易用性的角度来说,使用广播是非常简单的.不过,这个不是本文关心的重点,我们希望探索得再深入一点儿.我想,许多人也不 ...

最新文章

  1. DEAP:使用生理信号进行情绪分析的数据库(一、背景介绍与刺激选择)
  2. “苹果光环”褪色后,瑞声靠什么坐稳头把交椅?
  3. 从JDK9的Flow接口说起
  4. SAP ui5 sap.ui.getCore().getUIArea
  5. SQL Server数据库索引的基础知识
  6. python-上传下载文件
  7. 【CSU - 1980 】不堪重负的树(树上区间dp)
  8. ARM不同位数系统int字节数区别
  9. pat Simulation Test for PAT(B) 9月4日
  10. 安卓之实现一个简单的电话拨号功能
  11. mysql实现主从复制
  12. image 微信小程序flex_第三天学习微信小程序开发总结
  13. 在类中用class时数据是共有还是私有_C++判断题题库1
  14. Excel 预习阶段Day4
  15. 树型结构总结:二叉查找树、堆、平衡树、2-3查找树、红黑树、B树、B+树
  16. 好心情:吃精神科药物药不见效?你可能忽视了血药浓度
  17. 写给理工科大学生尤其是计算机专业大学生
  18. 算法题_遍历三角矩阵
  19. shell 向 awk 传参
  20. SQLServer数据库注入-墨者学院(SQL手工注入漏洞测试(Sql Server数据库))

热门文章

  1. erlang send剖析及参数意义
  2. 哪里可以免费下载适合Mac版苹果电脑端解压缩软件
  3. 【莹伙丛】Dependencies should no longer be declared using the compile and runtime configurations
  4. stata豪斯曼检验报错
  5. 14、W601之AHT10温湿度传感器
  6. 2019年终总结,内疚感满满的一年
  7. java使用es查询地理位置信息
  8. JWT认证方式之-System.IdentityModel.Tokens.Jwt
  9. 再上一发逻辑炸弹,不一样哦
  10. vue 生命周期的详解