将信息传递给暂停的活动以调用方法不更新UI

问题描述

场景:

活动A 打开活动B 活动B 具有一些过滤器,基于这些过滤器,活动A 内容将发生变化。为了减少用户的等待时间,我想通知活动A ,一旦活动B 发生更改,便开始获取内容

在不更改活动结构的情况下实现此目标的最佳方法是什么?

解决方法

最终使用LocalBroadcastManager。 在活动A中注册LocalBroadCastManager并从活动B发送消息。退出活动A后取消注册。

在活动A中:

LocalBroadcastManager.getInstance(this).registerReceiver(
  mMessageReceiver,new IntentFilter("CUSTOM-EVENT_NAME"));

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context,Intent intent) {
      // process the message here
      String data = intent.getStringExtra("intent-key")
    }
};

在活动B中:

Intent intent = new Intent("CUSTOM-EVENT_NAME");
intent.putExtra("intent-key","data");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);