Android学习之本地广播使用方法详解

发布时间 - 2026-01-11 02:42:31    点击率:

本地广播信息只能在应用程序内部传递,同时广播接收器也只能接收应用程序内部的广播消息。

MainActivity代码

package com.example.luobo.mybroadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

  private Button button;
  private IntentFilter intentFilter;
  private LocalBroadcastManager localBroadcastManager ;
  private LocalReceiver localReciiver;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = (Button)findViewById(R.id.send_button);
    button.setOnClickListener(this);
    localBroadcastManager = LocalBroadcastManager.getInstance(this);//使用
    intentFilter = new IntentFilter();
    intentFilter.addAction("com.example.luobo.mybroadcastreceiver.LOCAL_BROADCAST");
    localReciiver = new LocalReceiver();
    localBroadcastManager.registerReceiver(localReciiver,intentFilter);
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    localBroadcastManager.unregisterReceiver(localReciiver);
  }

  @Override
  public void onClick(View view) {
    Intent intent = new Intent("com.example.luobo.mybroadcastreceiver.LOCAL_BROADCAST");
    localBroadcastManager.sendBroadcast(intent);
  }
  class LocalReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
      Toast.makeText(context,"received local broadcast",Toast.LENGTH_SHORT).show();
    }
  }
}

首先通过LocalBroadcastManager(本地广播管理类)的getInstance(this)方法获取实例,注册广播消息时是调用localBroadcastManager实例的registerReceiver(参数1,参数2)方法注册(参数1是本地广播接受者,参数2是过滤器只选择接收特定的广播消息),调用localBroadcastManager实例的sendBroadcast(Initent initent)方法发送广播消息。

MyRecevity

package com.example.luobo.mybroadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    Toast.makeText(context,"Received in MyBroadCastReceiver",Toast.LENGTH_SHORT).show();
    abortBroadcast();
  }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="com.example.luobo.mybroadcastreceiver.MainActivity">
  <Button
    android:id="@+id/send_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="发送广播"/>

</android.support.constraint.ConstraintLayout>

AndroidMainfest.aml

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

  <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/AppTheme">
    <activity android:name=".MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <receiver
      android:name=".MyReceiver"
      android:enabled="true"
      android:exported="true">
      <intent-filter
        android:priority="100">
        <action android:name="com.example.luobo.mybroadcastreceiver.LOCAL_BROADCAST"/>
      </intent-filter>
    </receiver>
  </application>

</manifest>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # 本地广播  # Android中BroadcastReceiver(异步接收广播Intent)的使用  # Android 广播大全 Intent Action 事件详解  # Android apk安装替换卸载广播的实现代码  # Android中的广播和广播接收器代码实例  # android连接wifi时获取广播地址代码  # Android基于广播事件机制实现简单定时提醒功能代码  # Android广播接收机制详细介绍(附短信接收实现)  # Android广播接实现监听电话状态(电话的状态  # 拦截)  # Android 开机广播的使用及配置  # android如何默认打开小区广播具体实现  # 应用程序  # 大家多多  # 管理类  # 只能在  # void  # protected  # Override  # onCreate  # setContentView  # super  # savedInstanceState  # localReciiver  # private  # OnClickListener  # implements  # button  # LocalReceiver  # localBroadcastManager  # intentFilter  # layout 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android自定义listview布局实现上拉加载下拉刷新功能  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Python3.6正式版新特性预览  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel如何为API编写文档_Laravel API文档生成与维护方法  奇安信“盘古石”团队突破 iOS 26.1 提权  nodejs redis 发布订阅机制封装实现方法及实例代码  如何在宝塔面板中创建新站点?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  ,在苏州找工作,上哪个网站比较好?  EditPlus中的正则表达式 实战(4)  如何确保西部建站助手FTP传输的安全性?  Laravel如何使用Service Container和依赖注入?(代码示例)  网站制作价目表怎么做,珍爱网婚介费用多少?  打造顶配客厅影院,这份100寸电视推荐名单请查收  如何用搬瓦工VPS快速搭建个人网站?  Laravel怎么清理缓存_Laravel optimize clear命令详解  简历没回改:利用AI润色让你的文字更专业  如何快速使用云服务器搭建个人网站?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何使用Blade模板引擎?(完整语法和示例)  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  EditPlus中的正则表达式实战(5)  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  高端建站如何打造兼具美学与转化的品牌官网?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  利用JavaScript实现拖拽改变元素大小  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  如何用好域名打造高点击率的自主建站?  中国移动官方网站首页入口 中国移动官网网页登录  Laravel怎么在Blade中安全地输出原始HTML内容  如何用JavaScript实现文本编辑器_光标和选区怎么处理  独立制作一个网站多少钱,建立网站需要花多少钱?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  html如何与html链接_实现多个HTML页面互相链接【互相】  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Laravel如何保护应用免受CSRF攻击?(原理和示例)  如何在万网自助建站平台快速创建网站?  Bootstrap CSS布局之列表  Laravel如何处理CORS跨域请求?(配置示例)