Android 发送广播简易工具类

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

    /** 
     * 发送广播简易工具类 
     * Created by Liam on 2015/4/2. 
     */  
    public class BroadcastUtil {  
      
        /** 
         * 构造函数设为private,防止外部实例化 
         */  
        private void BroadcastManager() {  
        }  
      
        /** 
         * 注册广播接收器 
         * 
         * @param ctx       Context(不可空) 
         * @param iReceiver IReceiver(不可空) 
         * @param action    Intent.Action(不可空) 
         */  
        public static void registerReceiver(Context ctx, final IReceiver iReceiver, final String action) {  
            if (ctx == null || iReceiver == null || action == null) throw new IllegalArgumentException("使用registerReceiver()注册广播时,参数Context、IReceiver和Action不能为空!");  
      
            BroadcastReceiver receiver = new BroadcastReceiver() {  
                @Override  
                public void onReceive(Context context, Intent intent) {  
                    iReceiver.onReceive(context, intent);  
                }  
            };  
            IntentFilter filter = new IntentFilter(action);  
            ctx.registerReceiver(receiver, filter);  
        }  
      
        /** 
         * 发送广播 
         * 
         * @param ctx    Context(不可空) 
         * @param i      Intent(可为null),不需要设置Action,请把Action作为参数传入 
         * @param action Intent.Action(不可空) 
         */  
        public static void send(Context ctx, Intent i, final String action) {  
            if (ctx == null || action == null) throw new IllegalArgumentException("使用send()发送广播时,参数Context和Action不能为空!");  
      
            if (i == null) i = new Intent();  
            i.setAction(action);  
            ctx.sendBroadcast(i);  
        }  
      
      
        /** 
         * 接收广播的页面需要实现,把接收后的操作覆写在OnReceive()方法里 
         */  
        public interface IReceiver {  
            void onReceive(Context ctx, Intent intent);  
        }  
      
    }