1.Activity注册动态广播和销毁广播
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); registerExitAppReceiver(); }
public void registerExitAppReceiver() { IntentFilter exitFilter = new IntentFilter(); exitFilter.addAction(ProtocalConstants.MESSAGE_EXIT_APP); registerReceiver(exitReceiver, exitFilter); }
private ExitAppReciver exitReceiver= new ExitAppReciver();
@Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(exitReceiver); }
2.广播接收器
public class ExitAppReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if (context != null) { if (context instanceof Activity) { ((Activity) context).finish(); } else if (context instanceof FragmentActivity) { ((FragmentActivity) context).finish(); } else if (context instanceof Service) { ((Service) context).stopSelf(); } } } }
3.发送广播
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBroad);
这样发送是接受接收器收不到广播的。这种发送广播的方式接收是
LocalBroadcastManager.getInstance(context).registerReceiver(exitReceiver, exitFilter);
需要这样发送sendBroadcast(intentBroad);反之LocalBroadcastManager.getInstance(context).registerReceiver(exitReceiver, exitFilter);注册的广播
这样发送sendBroadcast(intentBroad)也是收不到的