首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏风吹杨柳

    实习杂记(21):LocalBroadcastManager的使用、优点在哪里?

    LocalBroadcastManager。         它来自Android 的support包,类名是android.support.v4.content.LocalBroadcastManager,是用来在同一个应用内的不同组件间发送Broadcast的 当上一个实例在用这个资源的时候,由于用户的行为新建一个实例需要立马使用这个资源,那么就需要把上一个实例给停了, 看到这里大家肯定会想到使用  单利模式啊,使用static变量啊,使用同步方法啊,等等, 我的意思是想说使用  LocalBroadCastManager 都是一个视频,但是只能有一个同时在播放,并且用户点击了一个播放没有关闭的情况下,继续点击另外的播放,需要自动把上面的暂停了,并且保存相关状态(记录位置,暂停进度条,显示暂停图标等等), 在这样的背景下,使用LocalBroadCastManager private boolean mIsPause = false; private Context context; public String path; public static String time; LocalBroadcastManager

    1.5K30发布于 2019-07-08
  • 来自专栏Android开发

    Android本地广播

    一.前言:BroadcastReceiver安全问题 对单个应用程序而言BroadcastReceiver是存在安全性问题的,为了解决这个问题LocalBroadcastManager就随之出现了。 二.什么是LocalBroadcastManager LocalBroadcastManager也称为局部通知管理器,是Android Support包提供了一个工具,用于在同一个应用内的不同组件间发送 (安全) 特点: 本地广播没有静态注册的方法 使用:与全局广播十分类似 具体见上文Android全局广播 动态注册不同的地方:注册调用的方法不同 注册时候调用的是LocalBroadcastManager localBroadcastManager; private IntentFilter intentFilter; private LocalReceiver localReceiver ()获得实例 localBroadcastManager = LocalBroadcastManager.getInstance(this); initView();

    31100编辑于 2025-06-11
  • 来自专栏Android知识分享

    Android:BroadcastRecevicer广播类型汇总

    context变成了LocalBroadcastManager的单一实例 注:对于LocalBroadcastManager方式发送的应用内广播,只能通过LocalBroadcastManager动态注册 的实例 localBroadcastManager = LocalBroadcastManager.getInstance(this); //步骤3:设置接收广播的类型 intentFilter.addAction (android.net.conn.CONNECTIVITY_CHANGE); //步骤4:调用LocalBroadcastManager单一实例的registerReceiver()方法进行动态注册 localBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter); //取消注册应用内广播接收器 localBroadcastManager.unregisterReceiver 对于应用内广播的动态注册(非LocalBroadcastManager方式),回调onReceive(context, intent)中的context返回值是:Activity Context;

    4.8K41发布于 2019-02-22
  • 来自专栏Android知识分享

    Carson带你学Android:BroadcastRecevicer广播类型汇总

    /取消注册广播接收器和发送广播时将参数的context变成了LocalBroadcastManager的单一实例 注:对于LocalBroadcastManager方式发送的应用内广播,只能通过LocalBroadcastManager 的实例 localBroadcastManager = LocalBroadcastManager.getInstance(this); //步骤3:设置接收广播的类型 intentFilter.addAction (android.net.conn.CONNECTIVITY_CHANGE); //步骤4:调用LocalBroadcastManager单一实例的registerReceiver()方法进行动态注册 localBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter); //取消注册应用内广播接收器 localBroadcastManager.unregisterReceiver 对于应用内广播的动态注册(非LocalBroadcastManager方式),回调onReceive(context, intent)中的context返回值是:Activity Context; 7.

    74420编辑于 2022-03-24
  • 来自专栏程序员修炼之路

    Android中LiveEventBus收不到消息?不妨试试本地广播

    android.content.Context import android.content.Intent import android.content.IntentFilter import androidx.localbroadcastmanager.content.LocalBroadcastManager class ReceiverActivity : AppCompatActivity() { private lateinit var localBroadcastManager: LocalBroadcastManager 发送广播 在需要发送广播的Activity中,可以通过LocalBroadcastManager发送广播消息。 import android.content.Intent import androidx.localbroadcastmanager.content.LocalBroadcastManager class SenderActivity : AppCompatActivity() { private lateinit var localBroadcastManager: LocalBroadcastManager

    67010编辑于 2024-09-13
  • 来自专栏ClericYi's Blog

    Android必知必会的四大组件--Broadcast Receiver

    使用方法: //注册 networkReceiver = new NetworkReceiver(); localBroadcastManager = LocalBroadcastManager.getInstance ")); // 发送消息 localBroadcastManager.sendBroadcast(Intent); // 注销 localBroadcastManager.unregisterReceiver (networkReceiver); LocalBroadcastManager源码导读 为什么要导读LocalBroadcastManager源码呢? 其实是想让读者们知道LocalBroadcastManager使用并不是Binder机制来完成通信的。 对于应用内广播的动态注册(非LocalBroadcastManager方式),回调onReceive(context, intent)中的context返回值是:Activity Context;

    91640发布于 2020-06-23
  • 来自专栏AndroidStudio初识

    Android 四大组件之BroadcastReceiver

    方案2:使用App应用内广播(LocalBroadcastManager类) App应用内广播可理解为一种局部广播,广播的发送者和接收者都同属于一个App。 使用封装好的 LocalBroadcastManager 类使用方式上与全局广播几乎相同,只是注册/取消注册广播接收器和发送广播时将参数的 context 变成了 LocalBroadcastManager 注意:对于LocalBroadcastManager方式发送的应用内广播,只能通过LocalBroadcastManager动态注册,不能静态注册。 LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this); //4:调用LocalBroadcastManager 4.对于应用内广播的动态注册(LocalBroadcastManager方式),回调onReceive(context, intent)中的context返回值是:Application Context

    2.2K10发布于 2019-09-02
  • 来自专栏Android开发者家园

    从0系统学Android--5.2 发送广播

    其实实现很简单就是通过 LocalBroadcastManager 来对广播进行管理。 下面我们就来列几个方法就可以了 LocalBroadCastManager localBroadCastManager = LocalBroadCastManager.getInstance(this) // 获取实例 // 发送广播的时候 Intent intent = new Intent("com.broadcst.syd"); localBroadCastManager.senBroadCast 注册广播接收器 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.broadcst.syd"); localBroadCastManager.registerReceiver (localReceiver,intentFilter); // 取消注册 localBroadCastManager.unregisterReceiver(localReceiver); 其实和之前动态注册发送都是一样的

    85110发布于 2020-03-23
  • 来自专栏Android知识分享

    Carson带你学Android:手把手教你学会广播组件-BroadcastReceiver

    /取消注册广播接收器和发送广播时将参数的context变成了LocalBroadcastManager的单一实例 注:对于LocalBroadcastManager方式发送的应用内广播,只能通过LocalBroadcastManager 的实例 localBroadcastManager = LocalBroadcastManager.getInstance(this); //步骤3:设置接收广播的类型 intentFilter.addAction (android.net.conn.CONNECTIVITY_CHANGE); //步骤4:调用LocalBroadcastManager单一实例的registerReceiver()方法进行动态注册 localBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter); //取消注册应用内广播接收器 localBroadcastManager.unregisterReceiver 对于应用内广播的动态注册(非LocalBroadcastManager方式),回调onReceive(context, intent)中的context返回值是:Activity Context; 7.

    1.1K10编辑于 2022-03-24
  • 来自专栏Android知识分享

    Android四大组件:BroadcastReceiver史上最全面解析

    context变成了LocalBroadcastManager的单一实例 注:对于LocalBroadcastManager方式发送的应用内广播,只能通过LocalBroadcastManager动态注册 的实例 localBroadcastManager = LocalBroadcastManager.getInstance(this); //步骤3:设置接收广播的类型 intentFilter.addAction (android.net.conn.CONNECTIVITY_CHANGE); //步骤4:调用LocalBroadcastManager单一实例的registerReceiver()方法进行动态注册 localBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter); //取消注册应用内广播接收器 localBroadcastManager.unregisterReceiver 对于应用内广播的动态注册(非LocalBroadcastManager方式),回调onReceive(context, intent)中的context返回值是:Activity Context; --

    2.5K10发布于 2019-02-22
  • 来自专栏Spring相关

    发送自定义广播

    android.net.ConnectivityManager; import android.net.NetworkInfo; import android.support.v4.content.LocalBroadcastManager MainActivity"; private IntentFilter intentFilter; private LocalReceiver localReceiver; private LocalBroadcastManager localBroadcastManager; private NetworkChangeReceive networkChangeReceive; @Override super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //接收本地的广播 localBroadcastManager = LocalBroadcastManager.getInstance(this); Button button = (Button) findViewById(R.id.button

    78920发布于 2018-12-17
  • 来自专栏AnRFDev

    Android 广播机制(Broadcast)介绍与使用

    LocalBroadcastManager.sendBroadcast 广播只能在应用程序内部进行传递,并且广播接收器也只能接收到来自本应用程序发出的广播。 (getApplicationContext()) .registerReceiver(mLocalReceiver1, makeIF()); LocalBroadcastManager.getInstance (getApplicationContext()) .unregisterReceiver(mLocalReceiver1); LocalBroadcastManager.getInstance (getApplicationContext()) .unregisterReceiver(mLocalReceiver2); LocalBroadcastManager.getInstance 要收到本地广播,同样需要LocalBroadcastManager来注册接收器。 可以把本地广播看成是一个局部的,App内的广播体系。

    3.6K30发布于 2021-02-01
  • 来自专栏老欧说安卓

    Android开发笔记(四十二)Broadcast的生命周期

    方法中注册 unregisterReceiver : 注销接收器,一般在onStop或者onPause方法中注销 进程内广播与进程间广播 如果广播是在应用之内使用,即不需要跨进程,可以考虑使用LocalBroadcastManager 进程内广播,推荐使用LocalBroadcastManager类下的registerReceiver和unregisterReceiver方法,代码示例如下: //注册接收器 LocalBroadcastManager.getInstance (this).registerReceiver(guestReceiver, filter); //注销接收器 LocalBroadcastManager.getInstance(this).unregisterReceiver new GuestReceiver(); IntentFilter filter = new IntentFilter("com.example.exmbrdlife.fragment"); LocalBroadcastManager.getInstance (this).registerReceiver(guestReceiver, filter); } @Override public void onStop() { LocalBroadcastManager.getInstance

    2.3K50发布于 2019-01-18
  • 来自专栏Android进阶

    Android高频面试专题 - 基础篇(四)BroadcastReceiver

    本地广播 通过系统LocalBroadcastManager发送,只能在当前应用内接收。相对于其他类型广播而言,安全性高&效率高。 本地广播只能通过LocalBroadcastManager动态注册。 5、LocalBroadcastManager实现原理 LocalBroadcastManager虽然使用和普通广播没有太大差别,但是原理却是完全不同。 LocalBroadcastManager内部维护了mReceivers和mActions两个HashMap, mReceivers 是接收器和IntentFilter的对应表,主要作用是方便在unregisterReceiver

    2K41发布于 2020-03-20
  • 来自专栏非著名程序员

    Android 高效安全的本地广播 LocalBroadcast 完全解析

    源码分析 我们下面来看下LocalBroadcastManager的源码: https://android.googlesource.com/platform/frameworks/support/+/ android-support-lib-19.1.0/v4/java/android/support/v4/content/LocalBroadcastManager.java 先来看下LocalBroadcastManager mInstance; public static LocalBroadcastManager getInstance(Context context) { synchronized (mLock) { if (mInstance == null) { mInstance = new LocalBroadcastManager( LocalBroadcastManager所发送的广播action,只能与注册到LocalBroadcastManager中BroadcastReceiver产生互动。

    1.4K70发布于 2018-02-02
  • 来自专栏用户9101034的专栏

    Android入门教程 | 广播机制 Broadcast

    **LocalBroadcastManager.sendBroadcast 广播只能在应用程序内部进行传递,并且广播接收器也只能接收到来自本应用程序发出的广播。 (getApplicationContext()) .unregisterReceiver(mLocalReceiver1); LocalBroadcastManager.getInstance (getApplicationContext()) .unregisterReceiver(mLocalReceiver2); LocalBroadcastManager.getInstance ); intentFilter.addAction(Intent.ACTION_TIME_CHANGED); return intentFilter; } 使用LocalBroadcastManager 要收到本地广播,同样需要LocalBroadcastManager来注册接收器。 可以把本地广播看成是一个局部的,App内的广播体系。

    2.5K30发布于 2021-10-21
  • 来自专栏达达前端

    使用广播-BroadcastReceiver最详细解析

    </intent-filter> //优先级 abortBroadcast(); //截断 本地广播: localBroadcastManager = LocalBroadcastManager.getInstance intentFilter = new IntentFilter(); intentFilter.addAction("com....."); myReceriver = new MyReceriver(); localBroadcastManager.registerReceiver (myReceriver, intentFilter); Intent intent = new Intent("com..."); localBroadcastManager.sendBroadcast (intent); //发送本地广播 localBroadcastManager.unregisterReceiver(myReceiver); 总结 有关内容就到这里了,本篇介绍了四大组件中的广播组件的知识点

    99720发布于 2019-07-03
  • 来自专栏tea9的博客

    android Broadcast Receiver漏洞挖掘

    Toast.makeTest(context,String.format("%sReceived",s),Toast.LENGTH_SHORT).show(); } 敏感信息泄露漏洞:修复 修复后代码,使用LocalBroadcastManager.sendBroadcast Intent intent = new Intent("my-sensitive-event"); intent.putExtra("event","this is a test event"); LocalBroadcastManager.getInstance broadcast -a android.intent.action.PACKAGE_FULLY_REMOVED -d package:com.wumii.android.mimi 权限绕过漏洞:修复 推荐使用呢LocalBroadcastManager 使用LocalBroadcastManager

    1.7K20编辑于 2022-07-16
  • 来自专栏全栈程序员必看

    BroadcastReceiver详解以及应用[通俗易懂]

    intentFilter = new IntentFilter(); intentFilter.addAction("my.broadcast.faqian2"); //拿到LocalBroadcastManager 对象,对固定的Receiver进行注册,成为本地广播接收者 LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance (MainActivity.this); localBroadcastManager.registerReceiver( myBroadCastReceiver, intentFilter ); localBroadcastManager.registerReceiver(myBroadCastReceiver2, intentFilter); } 注意: 1 发送广播 LocalBroadcastManager.getInstance(MainActivity.this).sendBroadcastSync(intent);//发送

    1.3K31编辑于 2022-08-02
  • 来自专栏github@hornhuang

    17 个必须掌握的 BroadcastReceiver 知识点「建议收藏」

    LocalBroadcastManager 类的 getInstance() 方法获取的实例调用。 本地广播主要是使用了一个 LocalBroadcastManager 来对广播进行管理,并提供了发送广播和注册广播接收器的方法。 为了解决这个问题 LocalBroadcastManager 就应运而生了。 LocalBroadcastManager 是 Android Support 包提供了一个工具,用于在同一个应用内的不同组件间发送 Broadcast。 LocalBroadcastManager 也称为局部通知管理器,这种通知的好处是安全性高,效率也高,适合局部通信,可以用来代替 Handler 更新 UI 1.9.4 广播的安全性 Android

    2.4K41发布于 2021-09-24
领券