在Android 4.0中如果一个程序如果只是安装了,但是重来都没有运行启动过,那么系统将会忽略这个程序,因此在系统开机时,该程序时将始终无法获取系统开机广播的---------》没有发送怎么会有接受。
因此Android 4.0及以上如果想接受系统广播至少要先运行程序一次。(其实Android 3.1就开始了,这么说是为了针对我们开发最多android 4.0);
简单的说,这样是是为了防止开机启动恶意程序,优化启动。(防止病毒等开机启动程序危害系统,所以andoird4.0不允许没有被用户手动启动过的程序进行开机启动); 经过验证发现,系统级的应用程序是可以接收到开机启动广播的(即将自己的apk放入到/system/app目录中,即可不用至少先运行一次)。
Android 4.0 无法接收开机广播的问题本身是因为,如果应用程序安装上始终没有被打开过,那么在Android启动时,该应用无法接收到开机时的系统广播android.permission.RECEIVE_BOOT_COMPLETED。
源码:
浙公网安备 33010602011771号