Android 使用LocalBroadcastManager

示例

LocalBroadcastManager用于在应用程序中发送广播意图,而不会将它们暴露给不需要的侦听器。

使用LocalBroadcastManager比使用context.sendBroadcast文件()直接,因为您不需要担心其他应用程序伪造的任何广播,这可能会带来安全隐患。

这是发送和接收本地广播的简单示例:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("Some Action")) {
            //做点什么
        }
    }
});

LocalBroadcastManager manager = LocalBroadcastManager.getInstance(mContext);
manager.registerReceiver(receiver, new IntentFilter("Some Action"));

// 此调用将调用onReceive():
manager.sendBroadcast(new Intent("Some Action"));//另请参见sendBroadcastSync

//完成后,请记住注销接收器:
manager.unregisterReceiver(receiver);