【问题标题】:What is LocalBroadcastManager in Android [duplicate]Android中的LocalBroadcastManager是什么[重复]
【发布时间】:2016-06-29 13:25:01
【问题描述】:

我不知道 android 中的 LocalBroadcastManager。 链接和博客非常受欢迎。

【问题讨论】:

  • 本地表示非远程,远程在这种情况下表示跨进程(因此它只能在同一个应用程序实例中工作)
  • @Selvin LocalBroadcastManager 和 Broadcast Manager 有什么区别
  • 您将在 api 中找到最佳答案。 LocalebroadcastManager:developer.android.com/reference/android/support/v4/content/… 和 BoradcastReceiver developer.android.com/reference/android/content/…
  • 它们只有通用接口,LocalBroadcastManager 是一个简单的发布-订阅模式实现,不涉及操作系统……对于 rpc 的“正常”(这就是“正常”“更昂贵”的原因)

标签: android


【解决方案1】:

LocalBroadcastManager:-

LocalBroadcast 接收器用于提供应用程序安全的进程间通信,它不允许其他进程通信。 此外,这些广播在应用程序之外无法访问,因此它还提供了系统安全性。

您不需要在清单中注册,它在本地应用程序中是有效的。

如果您传递 Intent 过滤器 null,应用程序会崩溃 LocalBroadcastManager.getInstance(context).register(broadcast,null);

注册广播:- LocalBroadcastManager.getInstance(context).register(broadcast, new intent filter);

取消注册广播:- LocalBroadcastManager.getInstance(context).unregister(broadcast);

发送广播:- LocalBrodcastManager.getInstance(context).sendBroadcast(new Intent())

你可以参考下面给出的链接

how to use LocalBroadcastManager?

很多人不知道如何衡量广播是否发送成功。

sendBroadcast(receiver) :- 返回真或假。 true - 广播成功发送到注册接收者。 false - 广播未注册。

【讨论】:

    【解决方案2】:

    Local broadcast manager 是一个事件消费者/引发者系统,仅存在于引发事件的应用程序中。您可以订阅:

    LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, intentFilter);
    

    并且可以引发事件:

    LocalBroadcastManager.getInstance(MainActivity.this).sendBroadcast(new Intent("intent action")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 2013-06-27
      相关资源
      最近更新 更多