广播(Broadcast)的发送与接收
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)的发送与接收相关推荐
- SOCKET实现广播(BoardCast)的发送和接收 (转)
SOCKET实现广播(BoardCast)的发送和接收 (转)[@more@] 这两天很多人在问怎么样用SOCKET实现广播(BoardCast) 正好我做过这方面的程序,这里用最简单的代码写一个广播 ...
- Android深入四大组件(八)广播的注册、发送和接收过程
前言 我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册.接收和发送过程.建议阅读此文前请先阅读Android深入理解四大组件系列的文章,知识重复的部分, ...
- Android-Framework学习笔记(九)—— Broadcast的注册、发送和接收过程
系列文章 Android-Framework学习笔记(一)-- Android系统架构 Android-Framework学习笔记(二)-- Zygote进程启动过程 Android-Framewor ...
- Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇
接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 ...
- Boardcast Receiver 源码分析:广播的动态注册、发送和接收过程
文章目录 动态注册过程 ContextWrapper#registerReceiver(以下代码基于API26) ContextImpl#registerReceiver ContextImpl#re ...
- Android再进阶之广播发送、接收和注册过程
广播的注册分为静态注册和动态注册,静态注册在应用安装的时候由PackageManagerService来完成注册.这里只介绍动态注册. 动态注册 调用registerReceiver方法,它在Cont ...
- [2021.11.6]使用BroadcastReceiver发送和接收广播
1 BroadcastReceiver简介 BroadcastReceiver类是所有广播接收器的抽象基类,子类对接收的广播进行筛选并做出响应.广播接收器的生命周期短,当广播消息到达时,调用onRec ...
- Android源码分析之广播的发送和接收流程
说明:本文是基于Android6.0源码来分析的 概要 我的理解是,Android中的广播可以看为一种消息机制,用来在一定的条件下触发一些操纵,比如:网络状态的改变,熄屏,亮屏等等Android系统都 ...
- 品茗论道说广播(Broadcast内部机制讲解)
1 概述 我们在编写Android程序时,常常会用到广播(Broadcast)机制.从易用性的角度来说,使用广播是非常简单的.不过,这个不是本文关心的重点,我们希望探索得再深入一点儿.我想,许多人也不 ...
最新文章
- DEAP:使用生理信号进行情绪分析的数据库(一、背景介绍与刺激选择)
- “苹果光环”褪色后,瑞声靠什么坐稳头把交椅?
- 从JDK9的Flow接口说起
- SAP ui5 sap.ui.getCore().getUIArea
- SQL Server数据库索引的基础知识
- python-上传下载文件
- 【CSU - 1980 】不堪重负的树(树上区间dp)
- ARM不同位数系统int字节数区别
- pat Simulation Test for PAT(B) 9月4日
- 安卓之实现一个简单的电话拨号功能
- mysql实现主从复制
- image 微信小程序flex_第三天学习微信小程序开发总结
- 在类中用class时数据是共有还是私有_C++判断题题库1
- Excel 预习阶段Day4
- 树型结构总结:二叉查找树、堆、平衡树、2-3查找树、红黑树、B树、B+树
- 好心情:吃精神科药物药不见效?你可能忽视了血药浓度
- 写给理工科大学生尤其是计算机专业大学生
- 算法题_遍历三角矩阵
- shell 向 awk 传参
- SQLServer数据库注入-墨者学院(SQL手工注入漏洞测试(Sql Server数据库))