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

我通过扩展BroadcastReceiver获得了我的课程’ ABC ‘。 但最近,我偶然发现了LocalBroadcastManager

这是我的class级声明:

 public class ABC extends BroadcastReceiver {} 

因此,ABC正在作为监听器工作,并基于它将调用另一个对象的操作。

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

让我知道如何在我的场景中使用LocalBroadcastManager
我是Android的新手。 请帮忙。

也许这个答案有点晚了,但我希望它对你有用。

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

 public class AppContext extends Application { private static AppContext instance; public AppContext() { instance = this; } public static Context getContext() { return instance; } } 

然后将以下代码添加到要将消息发送到LocalBroadcasr的位置

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

最后,你的class级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")); } 
 LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context); localBroadcastManager.registerReceiver(receiver); // or other operations