只有一个Receiver时,不能接收到广播
最近在做一个项目,主要是跑后台的,界面就是弹几个浮动在窗口之上的对话框与用户交互,在起初时,为了调试方便就建立了一个Activity,在Activity中启动后台Service。后来项目将近结束时,需要捕捉开机以及有网络的广播来开启服务,随之加入Receiver,删除Activity!心想这个是不是很完美,perfect! 但是,但是!无论如何,我的service总是起不来,连Receiver也没有收到广播,这就怪了,为啥呢? 随即写了2个小demo,一个是只有一个Receiver捕捉有网络改变的常驻广播,另外一个是在第一个的基础上增加了一个Activity。试验证明,第一种情况是收不到广播的! 第二种情况是可以收到广播的。所以android程序中,不能只有一个Receiver组件,必须还要Activity。据说这是google对android应用程序安全的考虑,防止流氓软件潜水消耗资源,正所谓禁止潜水也!