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);