iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android四大组件之广播BroadcastReceiver详解
  • 482
分享到

Android四大组件之广播BroadcastReceiver详解

2024-04-02 19:04:59 482人浏览 八月长安
摘要

定义 BroadcastReceiver,“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产

定义

BroadcastReceiver,“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度等等。Android中的广播机制设计的非常出色,很多事情原本需要开发者亲自操作的,现在只需等待广播告知自己就可以了,大大减少了开发的工作量和开发周期。而作为应用开发者,就需要数练掌握Android系统提供的一个开发利器,那就是BroadcastReceiver。
在我们详细分析创建BroadcastReceiver的两种注册方式前,我们先罗列本次分析的大纲:
(1)对静态和动态两种注册方式进行概念阐述以及演示实现步骤
(2)简述两种BroadcastReceiver的类型(为后续注册方式的对比做准备)
(3)在默认广播类型下设置优先级和无优先级情况下两种注册方式的比较
(4)在有序广播类型下两种注册方式的比较
(5)通过接受打电话的广播,在程序(Activity)运行时和终止运行时,对两种注册方式的比较
(6)总结两种方式的特点
一、静态和动态注册方式
? 构建Intent,使用sendBroadcast方法发出广播定义一个广播接收器,该广播接收器继承BroadcastReceiver,并且覆盖onReceive()方法来响应事件注册该广播接收器,我们可以在代码中注册(动态注册),也可以AndroidManifest.xml配置文件中注册(静态注册)。

案例解析:

1.主界面设计


<?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:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnSend"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:insetTop="16dp"
        android:text="发松" />
</LinearLayout>

如图:

在这里插入图片描述

2.后台代码设计


package com.aaa.btdemo02;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
    //定义对象;村长:一样权威,光辉的存在,拿着大喇叭,讲话;
    Button btnSend;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //取值
        btnSend=(Button) findViewById(R.id.btnSend);
        //这对这个按钮做监听事件;发送信息,大喇叭...
        btnSend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent();
                //设置intent的动作;后面字符串是自定义的
                intent.setAction("android.intent.action.receiverdata");
                intent.putExtra("msg","羊村各位村民开会了");
                MainActivity.this.sendBroadcast(intent);
            }
        });
    }
}

3.创建自己的广播接收器类


package com.aaa.btdemo02;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //接受广播
        if(intent==null)return;
        //intent:接受从主端传递过来的数据,action数据;
        String action=intent.getAction();
        //针对上述做判断;第一个判断是否为空也可以写成action.isEmpty
        if(!TextUtils.isEmpty(action)&&"android.intent.action.receiverdata".equals(action)){
            String msg=intent.getStringExtra("msg");//不习惯可以使用Bundle
            Log.i("喜洋洋-->",msg);
        }
    }
}

4.注册广播


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.aaa.btdemo02">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Btdemo02">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <cateGory android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".MyReceiver"
            android:exported="true">
            <intent-filter>
                <!-- 自定义的action名 -->
                <action android:name="android.intent.action.receiverdata"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>

5.运行效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

到此这篇关于Android四大组件之广播BroadcastReceiver详解的文章就介绍到这了,更多相关Android 四大组件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android四大组件之广播BroadcastReceiver详解

本文链接: https://www.lsjlt.com/news/156395.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android四大组件之广播BroadcastReceiver详解
    定义 BroadcastReceiver,“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产...
    99+
    2024-04-02
  • Android四大组件之BroadcastReceiver详解
    BroadcastReceiver是Android四大组件之一,用于接收和处理系统广播或者应用内发送的广播。广播是一种跨组件、跨应用的通信机制,可以用于在应用内部或者应用之间传递消息或者事件。BroadcastReceiver的主要作用...
    99+
    2023-08-09
    Android
  • Android四大组件之broadcast广播详解
    目录基础广播两大类广播广播的动态和静态注册监听时间变化监听系统启动案例创建 receiver设置权限发送自定义广播如何发送与接收有序广播基础广播 两大类广播 标准广播:异步执行,广播...
    99+
    2024-04-02
  • Android组件之BroadcastReceiver广播接收者
    目录本节引言1.BroadcastReceiver是什么?2.两种广播类型:3.接收系统广播1)两种注册广播的方式2)动态注册实例(监听网络状态变化)3)静态注册实例(接收开机广播)...
    99+
    2023-05-16
    Android BroadcastReceiver Android 组件
  • Android之 BroadcastReceiver广播接收器详解
    一 四大组件 1 Activity组件,它一个单独的窗口,程序流程都必须在Activity中运行。 2 service组件,用于在后台完成用户指定的操作。 3 content provider组件,会为所有的应用准备一个内容窗口,并且保留数...
    99+
    2023-09-22
    android
  • Android四大组件之broadcast广播使用讲解
    目录一、广播机制概述二、广播接收者1、广播接收者的创建2、广播接收者的注册三、广播的类型1、无序广播2、有序广播一、广播机制概述 通常情况下在学校的每个教室都会装有一个喇叭,这些喇叭...
    99+
    2022-12-26
    Android broadcast Android broadcast广播组件
  • Android 广播接收器BroadcastReceiver详解
    目录一、什么是BroadcastReceiver1.1、作用1.2、实现原理二、创建广播接收器三、注册广播接收器3.1、静态注册注册发送通知3.2、动态注册四、系统广播总结一、什么是...
    99+
    2024-04-02
  • Kotlin四大组件中的broadcast广播
    目录创建Fragmen 碎片主界面中添加ViewPager创建广播小结在上一章中,有个问题可能大家都没有注意,Acitivity 在使用startActivityForResult后...
    99+
    2022-12-08
    Kotlin broadcast Kotlin broadcast广播 Kotlin 广播
  • Android四大组件之Service服务详细讲解
    目录一、Service是什么二、Service 的启动方式2.1、startService 显示启动Service启动Service 停止2.2、bindService 绑定启动使用...
    99+
    2024-04-02
  • Android四大组件之Activity详细介绍
    目录理论概述Activity的理解Activity的定义Activity的作用类比Activity与ServletIntent的理解Intent的分类Intent的使用IntentF...
    99+
    2024-04-02
  • Python四大金刚之元组详解
    目录引言 一、元组的创建方式二、元组的遍历总结引言  一、元组的创建方式 #第一种: t = ('python','No.1') print(t) pri...
    99+
    2024-04-02
  • Android四大组件之Activity深入解读生命周期
    目录一、什么是Activity二、Activity之间的跳转三、Activity 生命周期3.1、Activity生命周期的基本状态3.2、Activity 生命周期的7个方法3.3...
    99+
    2024-04-02
  • Android12四大组件之Activity生命周期变化详解
    目录前言点击返回键Activity不在onDestroy重新onBackPressed时的注意点总结前言 Android12 有很多令人惊喜的变化,比如基于 Material You...
    99+
    2024-04-02
  • 详解Android广播Broadcast的启动流程
    Android中的广播是一种用于应用程序之间通信的机制。它允许应用程序发送和接收系统级或应用程序级的广播消息。当一个广播被发送时,系...
    99+
    2023-08-11
    Android
  • android四大组件有什么功能
    Android四大组件是Activity、Service、BroadcastReceiver和ContentProvider。1. ...
    99+
    2023-08-26
    android
  • Android组件之服务的详解
    目录一、服务的概念二、Android的多线程编程2.1 线程的基本用法2.2 在子线程中更新UI更新方式一更新方式二2.3 解析异步消息处理机制2.4 使用AsyncTask三、服务...
    99+
    2024-04-02
  • android的四大组件分别是什么
    这篇“android的四大组件分别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“android的四大组件分别是什么”文...
    99+
    2023-07-04
  • Android studio 广播的简单使用代码详解
    1.在布局文件里面加入按钮,等会发送广播 <?xml version="1.0" encoding="utf-8"?> <LinearLayou...
    99+
    2024-04-02
  • Vue组件之间四种通信方式详解
    目录前言父子组件通信​父组件与子孙组件的通信​父组件获取子组件数据​无需考虑组件关系的通信​前言 vue 框架提供了前端开发组件的思想,可以通过组件来组合成一个完整的页面,都是随着组...
    99+
    2024-04-02
  • android的四大组件有哪些优缺点
    Android的四大组件包括Activity、Service、BroadcastReceiver和ContentProvider,它...
    99+
    2023-09-15
    android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作