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)也是收不到的