首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用无活动的LocalBroadcastManager

如何使用无活动的LocalBroadcastManager
EN

Stack Overflow用户
提问于 2013-09-12 07:56:13
回答 2查看 2.9K关注 0票数 4

通过扩展BroadcastReceiver,我得到了我的班级'ABC‘。但最近,我偶然发现了LocalBroadcastManager

这是我的班级宣言:

代码语言:javascript
复制
public class ABC extends BroadcastReceiver {}

所以ABC是作为监听器工作的,并且基于它将调用另一个对象的操作。

我到处检查是否可以在这里使用LocalBroadcastManager而不需要任何活动。实际上,ABC类是一个核心应用程序类,它不连接到任何UI组件。

让我知道如何在我的场景中使用LocalBroadcastManager

我是机器人新手。请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2014-02-12 09:25:39

也许现在回答有点晚了,但我希望这对你有用。

第一步是拥有一个扩展应用程序的类。这将用于从活动外部获取应用程序上下文。

代码语言:javascript
复制
public class AppContext extends Application {

    private static AppContext instance;

    public AppContext() {
      instance = this;
    }

    public static Context getContext() {
      return instance;
    }
}

然后将下面的代码添加到要将消息发送到LocalBroadcasr的地方

代码语言:javascript
复制
Intent intent = new Intent("intent-filter");
intent.putExtra("message", "your-message-here");
LocalBroadcastManager.getInstance(AppContext.getContext()).sendBroadcast(intent);

最后,正如我接下来向您展示的那样,您的课程ABC将收到此意向。

代码语言:javascript
复制
private BroadcastReceiver receiver;

public class ABC{

public ABC(){
    receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
      //receive your message here
      String message = intent.getStringExtra("message");
    };
        LocalBroadcastManager.getInstance(AppContext.getContext()).registerReceiver(receiver, new IntentFilter("intent-filter")); 
}
票数 2
EN

Stack Overflow用户

发布于 2013-09-12 09:47:36

代码语言:javascript
复制
LocalBroadcastManager  localBroadcastManager = LocalBroadcastManager.getInstance(context);
localBroadcastManager.registerReceiver(receiver); // or other operations
票数 -5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18758613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档