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



场景:

活动A打开"活动B">活动B有一些筛选器,活动A的内容将根据这些筛选器进行更改。为了减少用户的等待时间,我希望在活动B发生更改时立即通知活动A开始获取内容。

在不改变活动结构的情况下,实现这一目标的最佳方式是什么?

最终使用了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);

最新更新