Android-BroadcastReceiver广播简单的使用

《BroadcastReceiver详解》对应源码 博客《BroadcastReceiver详解》对应源码,博客地址:http://blog.youkuaiyun.com/harvic880925/article/details/38710901 立即下载

静态的BroadcastReceiver


主要代码

public class MyReceiver extends BroadcastReceiver {
    @Override
    //接受广播时回调
    public void onReceive(Context context, Intent intent) {
        //接收广播
      if(intent != null){
          //接收到是什么广播
          String action = intent.getAction();
          Log.e("测试",action);
      }
    }
}

在AndroidManifest.xml里设置权限

<receiver android:name=".MyReceiver">
            <!--接受广播类型-->
            <intent-filter>
                <!--开机广播-->
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <!--电量低广播-->
                <action android:name="android.intent.action.BATTERY_LOW"/>
                <!--应用卸载-->
                <action android:name="android.intent.action.PACKAGE_REMOVED"/>
                <!--应用安装-->
                <action android:name="android.intent.action.PACKAGE_INSTALL"/>
                <!--数据类型-->
                <data android:scheme="package"/>
            </intent-filter>
        </receiver>

动态的BroadcastReceiver


主要代码
1.设置一个Java类继承BroadcastReceiver

public class MyReceiverD extends BroadcastReceiver {

    @Override
    //接受广播时回调(不能做耗时操作,必须开子线程)
    public void onReceive(Context context, Intent intent) {
            //接收广播
            if(intent != null){
                //接收到是什么广播
                String action = intent.getAction();
                Log.e("测试",action);
            }
        }
    }

在AndroidManifest.xml里设置权限

 <!--动态注册-->
        <receiver android:name=".MyReceiverD">
        //因为是动态设置就不需要在里面设置别的了
    </receiver>

3.MainActivity

//新建一个广播接收器 动态广播
        receiverD = new MyReceiverD();
        //接收那种广播
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
        intentFilter.addDataScheme("package");
        intentFilter.addAction(Intent.ACTION_BATTERY_LOW);
        //注册广播接收器
        registerReceiver(receiverD,intentFilter);

        protected void onDestroy() {
        super.onDestroy();
        //取消注册关闭接收器
        if (receiverD != null){
            unregisterReceiver(receiverD);
        }
    }

随便卸载一个应用控制台就会显示
在这里插入图片描述

自定义的BroadcastReceiver

1.还是准备一个Java继承BroadcastReceiver

public class MyReceiverD_zdy extends BroadcastReceiver {
    private TextView txt;
    public MyReceiverD_zdy(TextView txt) {
        this.txt = txt;
    }
    public MyReceiverD_zdy() {

    }

    @Override
    public void onReceive(Context context, Intent intent) {
        //接收广播
        if(intent != null){
            //接收到是什么广播
            String action = intent.getAction();
            Log.e("测试",action);
            //判断是什么广播,是否是自己自定义的广播
            if (TextUtils.equals(action,MainActivity.MY_ACTION)){
                //获取广播携带的数据
                String content = intent.getStringExtra(MainActivity.BROADCAST_CONTENT);
               if (txt != null){
               txt.setText("接收到的action是:"+action+"\n接收到的内容是"+content);
               }
            }
        }
    }
}

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:padding="16dp"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="请输入发送内容:"/>

    <EditText
        android:id="@+id/etxt"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="16dp"
        />

    <Button
        android:id="@+id/bnt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_gravity="center_horizontal"
        android:text="发送广播"/>

    <TextView
        android:id="@+id/txt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="收到的内容:"/>

</LinearLayout>

3.MainActivity

public class MainActivity extends AppCompatActivity {
    private MyReceiverD receiverD;
    private MyReceiverD_zdy receiverDZdy;
    private Button bnt;
    private EditText etxt;
    private TextView txt;
    public static final String MY_ACTION = "com.example.my";
    public static final String BROADCAST_CONTENT = "cs";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        
        //设置应用主页面的标题
        setTitle(getPackageName());
       //新建广播接收器
        receiverDZdy = new MyReceiverD_zdy(txt);
        //注册广播接收器

        //为广播添加Action
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action,PACKAGE_REMOVED");
        //自定义
        intentFilter.addAction(MY_ACTION);
        //注册广播接收器
        registerReceiver(receiverDZdy,intentFilter);
        bnt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //新建广播 自定义
                Intent intent = new Intent(MY_ACTION);
                //携带数据
                intent.putExtra(BROADCAST_CONTENT,etxt.getText().toString());

                //发送广播
                sendBroadcast(intent);
            }
        });
    }
    protected void onDestroy() {
        super.onDestroy();
        //取消注册关闭接收器
        if (receiverDZdy != null){
            unregisterReceiver(receiverDZdy);
        }
    }

    private void initView() {
        //初始化
        etxt = (EditText) findViewById(R.id.etxt);
        txt =(TextView) findViewById(R.id.txt);
        bnt =(Button) findViewById(R.id.bnt);
    }
}

样式
在这里插入图片描述
当然也可以实现不同app接受发送的广播内容
复制代码换app名字,当前app发送的广播新的app也可以接收到
在这里插入图片描述
谢谢看到这里,Android萌新,有问题望大佬指出.

BroadcastReceiver详解代码 自己写的一个BroadcastReceiver的小例子,分两种注册方式去讲解。 立即下载

相关推荐

android之BroadcastReceiver应用详解

主要介绍了android之BroadcastReceiver应用详解,BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。有兴趣的可以了解一下。

Android之 BroadcastReceiver广播接收器详解

broadcast receiver广播接收器详解

qq_29848853的博客 1万+

Day470&471.Netty概述&Netty高性能架构设计 -netty

Netty概述 一、原生 NIO 存在的问题 NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。 需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序。 开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。 JDK NIO

阿昌爱Java 1572

broadcastreceiver全面详解

目录     1. 定义 即 广播,是一个全局的监听器,属于Android四大组件之一 Android 广播分为两个角色:广播发送者、广播接收者 2. 作用 监听 / 接收 应用 App 发出的广播消息,并 做出响应 3. 应用场景 Android不同组件间的通信(含 :应用内 / 不同应用之间) 多线程通信 与 Android 系统在特定情况下的通信 如:电话呼入时...

zyz18813049204的博客 4510

风控要略-互联网业务反欺诈之路(一)

当前中国互联网安全产业答题可以分为基础安全和业务安全两个领域。从互联网诞生至2014年,互联网安全行业关注的热点基本都聚焦在网络安全、系统安全和应用安全这个三大基础安全领域上,“DDOS“(分布式拒绝服务攻击)1、“漏洞“、“拖库“2和“挂马“3等大家耳熟能详的术语也是从这些领域中衍生出来的。2014年前后,随着互联网业务的爆炸式发展,黑产团伙开始从“攻击渗透系统“的传统套路进化到“利用业务风控确实进行大规模牟利“的模式,并且逐渐形成规模庞大、分工明确的黑色产业链。

Despacito1006的博客 1012

CODESYS EtherCAT通讯断了怎么办?手把手教你用ST语言写状态监测程序(附完整代码)

本文详细解析了CODESYS平台下EtherCAT通讯中断的故障排查与恢复方法,通过ST语言编写状态监测程序实现链路监测、故障隔离和伺服恢复。文章包含完整代码示例,帮助工程师快速诊断EtherCAT网络问题,提升工业自动化设备的运行稳定性。

weixin_30919571的博客 209

Android 广播接收器(Broadcast Receivers)的简单的使用

动态广播和静态广播简单的使用

qq_54348654的博客 2720

Codex入门24-效率倍增秘籍(终极总结:10个让你开发速度翻倍的Codex高级技巧)

专栏收官之作!经过前23篇的系统学习,你已经掌握了 Codex CLI 的核心用法。本文浓缩10个实战验证的高级技巧:管道化提示词将复杂任务拆成递进指令链,模板化 SKILL.md 打造个人技能库,Shell 别名让操作快如闪电,多模型切换省钱又高效……这不是理论课,每个技巧都配有可直接运行的代码。掌握全部10招,构建你的 AI 开发工作流闭环,让开发速度真正翻倍!

yueyeguzhuo的专栏 189

BroadCast Receiver(广播)详解

BroadCastReceiver是四大组件之一,是一个全局的监听器BroadCastReceiver有两大功能,广播发送者,广播接收者BroadCastReceiver分为静态广播和动态动态广播。

suiyue010211的博客 8405

5 分钟上手 Kimi Work:安装、配置、跑通第一个任务

这篇文章提供了Kimi Work的快速入门指南,帮助用户在5分钟内完成从安装到运行第一个任务的全过程。主要内容包括: 安装步骤: macOS用户下载.dmg文件并拖入Applications Windows用户下载.exe安装包,需注意中文路径问题 初始设置: 使用现有Kimi账号登录 检查任务配额和文件访问权限 首个任务推荐: 建议从简单的本地文件整理开始(如按类型分类桌面文件) 详细说明了任务执行流程和审批机制 常见问题: 计划生成卡顿的解决方法 文件无变化的排查步骤 进阶建议: 提供难度递增的后续任务

sg_knight的专栏 2780

【个人成长笔记】在Ubuntu中安装RTL8188GU USB无线网卡驱动(Driver for Linux RTL8188GU)

这篇笔记提供了在Ubuntu系统中安装RTL8188GU无线网卡驱动的完整指南。主要内容包括:驱动程序的官方来源(Github链接)、详细安装步骤(通过git下载、编译安装等命令),以及将设备转换为USB网卡模式的关键指令。特别提醒每次开机都需要执行模式转换命令,因为设备默认会以U盘模式启动。文章以简洁的技术文档形式呈现,适合Linux用户快速查阅和操作。

yuhuasheng1997的博客 1826

【Android移动开发】BroadcastReceiver详解

在Android中,广播是一种广泛运用在应用程序之间传输信息的机制,广播的内容是一个Intent,这个Intent可以携带要发送的数据。

Pluton_的博客 1401

【第07例】IPD体系进阶: 6 个技术评审点(TR)

TR技术评审点

产品线负责人 4415

Android BroadcastReceiver广播简单使用

1.创建 BroadcastReceiver /** * 广播监听 */ private class ScrosReceive extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.e("BroadcastReceiver" ,"第一个页面,监听到广播,做相应的数据处理"); scros = intent.ge

yyxhzdm的博客 526

Qt软件开发: 开发MQTT客户端软件,模拟硬件登录各大主流MQTT平台完成通信

此软件是使用QT编写MQTT客户端(根据mqtt官方文档3.1.1,自己实现过程代码,没有使用其他库,稳定,方便移植),模拟硬件登录各大主流的MQTT物联网服务器,完成主题订阅、发布等操作,实现数据通信交互。 已经测试OneNET、阿里云IOT、华为云IOT、百度IOT、电信IOT、原子云IOT等等常用的物联网云平台,都可以正常实现数据通信,只要云平台支持标准MQTT协议都可以使用此软件进行登录测试。 特别是大家没有硬件,想测试与MQTT物联网云服务器通信的,此软件是非常的方便。使用简单,比官方的软件操作

1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android广播BroadcastReceiver最简单使用示例

发送者: private void sendBroad() { Intent intent = new Intent(); // Itent就是我们要发送的内容 intent.putExtra(Constant.DOWN_EXTRA,"DOWN_SUCCESS"); //Extra的用法和跳Activity一样 intent.setAction(Constant.DOWN_FLA

葫芦娃 607

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android四大组件之BroadcastReceiver

BroadcastReceiver介绍BroadcastReceiver用于接收程序(包括用户开发的程序和系统内部的程序)所发出的Broadcast Intent用法程序启动BroadcastReceiver只需要两步 1 创建需要启动的BroadcastReceiver的Intent 2 调用Context的sendBroadcast()或sendOrderedBroadcast()方法来启

TaoLee 1187

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android BroadcastReceiver广播接收器详解

android中的广播是一个很神奇的东西,如果使用得当的话,能大大提高我们的开发效率,最近的学习中正好接触到了这个知识点,我要把它纪录下来,方便以后复习和查阅BroadcastReceiver是Andriod四大组件之一,在使用的过程中,我们需要自定义一个类来继承BroadcastReceiver,并实现onReceive()方法,该方法就是广播接收器需要处理的业务,不可以做耗时任务,时间超过10秒

我是吴长老啊 1146

Android移动应用开发:广播机制(BroadcastReceiver)简单示例

本文介绍了一个简单的Android示例,旨在帮助初学者理解广播接收器(BroadcastReceiver)的使用方法。示例包含两个按钮,分别用于发送包含城市信息和美食信息的自定义广播。通过MainActivity.java和MyReceiver.java的代码实现,展示了如何注册广播接收器、发送广播以及接收并处理广播内容。运行程序后,点击按钮会在日志中显示相应的广播信息。该示例代码清晰、功能简单,适合初学者入门学习Android广播通信机制。

2402_84971234的博客 912

Android 广播事件机制

学习Android广播事件机制,并实现简单的定时提醒功能 涉及的主要内容:1) AlarmManager 和 PendingIntent 2) BroadReceiver 3) Notification and NotificationManager     1.Android广播事件机制      Android的广播事件处理类似于普通的事件处理。不同之处在于,后者是靠点击按钮这样的组件

白璐 | 产品经理 1800

android的广播详解,Android的Service和广播的讲解

前言:我们都知道Android的四大基本组件:Activity、ContentProvider、Service以及BroadcastReceiver,前面的两个我们在前几篇已经具体讲解了,今天这一天我们就把后两者的使用具体说一下,由于Service和BroadcastReceiver常常一起使用,所以我们一起来学习。一.Service的使用Service是Android系统的后台服务组件,没有用户...

weixin_29130215的博客 1141

Android广播事件机制及应用(实现简单的定时提醒功能)

涉及的主要内容:1) AlarmManager 和 PendingIntent 2) BroadReceiver 3) Notification and NotificationManager   1.Android广播事件机制      Android的广播事件处理类似于普通的事件处理。不同之处在于,后者是靠点击按钮这样的组件行为来触发,而前者是通过构建Intent对象,使用sentBr

wanglang3081的专栏 7819

Android 使用广播发送消息

1.activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" ...

weixin_42630638的博客 812

android四大组件(BroadcastReceiver)

BroadcastReceiver译为广播接受者。Android系统在发生某个事件(如开机、电量改变、收发短信、拨打电话或者屏幕解锁等)时会发送广播,应用程序使用BroadcastReceiver接收这个广播,就知道系统发生了什么,进而采取相应事件响应。通过Context.sendBroadcast()方法来发送。它是完全异步的。所有的receivers接收器的执行顺序不确定。故所有的receivers接收器接收broadcast的顺序不确定。该方式效率更高。

qq_58259539的博客 711

android 广播 更新ui,用广播 BroadcastReceiver 更新 UI 界面真的好吗?全方位解析广播...

本期我们将来探讨一下 Android 四大组件的重要组成部分:广播 BroadcastReceiver。前言BroadcastReceiver 作为 Android 四大组件之一,应用场景可谓非常之多。所以我相信任何一个有一定 Android 开发经验的工程师都不会在这个题上栽跟斗。但,某些细节,或许我们可以注意一下。实际上我在面试过程中也遇到了这样的题。下面请允许我用「柳学兄」的思路带大家进入面...

weixin_32576389的博客 956

【Android从零单排系列三十八】《Android四大组件——BroadcastReceiver》

小伙伴们,在上文中我们介绍了Android组件Service,本文我们继续盘点介绍Android开发中另一个非常重要的组件BroadcastReceiver。BroadcastReceiver(广播接收器)是Android中的一个组件,用于接收和响应系统或应用发送的广播消息。它允许应用程序在某些事件发生时收到通知并采取相应操作。BroadcastReceiver通过注册到系统中指定的广播过滤器来接收广播消息。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1843
上一篇: 简单使用Okhttp和Gson的封装(Post请求)
下一篇: RecyclerView的使用
是心无吖
博客等级 码龄7年 3粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值