如何在没有Activity的情况下使用LocalBroadcastManager

4

我通过扩展 BroadcastReceiver 来设置我的课程名为 'ABC'。但最近,我偶然发现了 LocalBroadcastManager

以下是我的类声明:

public class ABC extends BroadcastReceiver {}

ABC作为监听器,根据操作调用另一个对象。

我到处查找是否可以在没有活动的情况下使用LocalBroadcastManager。实际上,ABC类是一个核心应用程序类,它不连接任何UI组件。

请告诉我如何在我的情况下使用LocalBroadcastManager
我是Android新手,请帮忙。

2个回答

2
也许回答有点晚了,但我希望对您有用。第一步是创建一个扩展应用程序的类。这将用于从 Activity 外部获取应用程序上下文。
public class AppContext extends Application {

    private static AppContext instance;

    public AppContext() {
      instance = this;
    }

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

接下来,在您希望将消息发送到本地广播的位置添加以下代码:

Intent intent = new Intent("intent-filter");
intent.putExtra("message", "your-message-here");
LocalBroadcastManager.getInstance(AppContext.getContext()).sendBroadcast(intent);

最后,你的ABC类将按照我接下来展示的方式接收到这个意图。
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")); 
}

-5
LocalBroadcastManager  localBroadcastManager = LocalBroadcastManager.getInstance(context);
localBroadcastManager.registerReceiver(receiver); // or other operations

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接