Broadcast问题:
平时使用广播接收器时,通常只使用了默认的无参构造方法;静态注册或动态注册都基本不重载构造方法;
在一次开发中使用了重载的构造方法传入一个handler对象用于消息传递,但意外发现在接收到广播事件后没有调用重载的有参构造,handler参数为空了。每次接收到广播后都重新调用了一次无参构造。
经过调试发现是在发送广播的时候设置了component引起的,即常常用的setComponent(new ComponmentName(“packgeName”, "full className"))。这样的话,应该是指定了接收类,即使不进行静态或动态注册也能收到广播通知。如果想正常使用有参构造的方式,不要设置component。