如果不太清楚LocalBroadCast可以看下别的作者写的关于LocalBroadCast的介绍
http://blog.csdn.net/plussoft/article/details/12971265
public class BroadcastCenter
{
private LocalBroadcastManager mLocalBroadcast;
private List<BroadcastReceiver> broadcastReceiverList = new ArrayList<BroadcastReceiver>();
private static BroadcastCenter singleBroadcast = new BroadcastCenter();
public static BroadcastCenter getInstance()
{
return singleBroadcast;
}
public boolean init(Context context)
{
LogN.d(this, "init | Enter");
if(null == context)
{
LogN.e(this, "init | context is null");
return false;
}
mLocalBroadcast = LocalBroadcastManager.getInstance(context);
if(null == mLocalBroadcast)
{
LogN.e(this, "init | mLocalBroadcast is null");
return false;
}
LogN.d(this, "init | Leave");
return true;
}
public void broadcast(Intent intent)
{
if (null == mLocalBroadcast)
{
LogN.e(this, "broadcast | mLocalBroadcast is null");
return;
}
mLocalBroadcast.sendBroadcast(intent);
LogN.d(this, "broadcast | sendBroadcast finished");
}
public void registerReceiver(BroadcastReceiver br, String action)
{
if(null == br || null == action || null == mLocalBroadcast)
{
LogN.e(this, "registerReceiver | param is null or mLocalBroadcast is null");
return;
}
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(action);
mLocalBroadcast.registerReceiver(br, iFilter);
broadcastReceiverList.add(br);
}
public void unregisterReceiver(BroadcastReceiver br)
{
if(null == br || null == mLocalBroadcast)
{
LogN.e(this, "unregisterReceiver | param is null or mLocalBroadcast is null");
return;
}
mLocalBroadcast.unregisterReceiver(br);
broadcastReceiverList.remove(br);
}
public void unregisterAllReceiver()
{
if(null == mLocalBroadcast)
{
LogN.e(this, "unregisterAllReceiver | mLocalBroadcast is null");
return;
}
for(BroadcastReceiver tempBr : broadcastReceiverList)
{
mLocalBroadcast.unregisterReceiver(tempBr);
}
broadcastReceiverList.clear();
}
}