1. 静态广播唤醒
广播的exported属性和enabled属性
exported默认为true表示这个广播可以接收来自其他app发送的广播,只要条件满足,exported设置成false表示只能是这个app内发送的广播才能接收,即使是receiver的进程和发送广播的进程不是同一个,但是只要都是属于一个app的就可以正常接收,有时候会遇到发送者和接收者不在一个进程,广播没办法正常接收,这是因为receiver所在的进程是死的,如果通过某种方式把receiver所在的进程唤醒,那么即使exported为false也能正常接收
enabled为true表示广播可用,为false表示禁用广播,禁用后广播将无法接收
静态的系统广播
静态的系统广播,例如:开机广播,用户开屏广播,USB插入和拔出广播等这类广播在app运行期间可以用静态注册的广播正常接收,但是在app被杀死后就无法收到了,android系统做了屏蔽,把被杀死的app的系统静态广播都过滤了,所以想让app被杀死后仍然通过静态注册的广播接收系统广播是做不到的
自定义广播
我们一般发广播都是局限在app内部,所以通常都是这么发的:
Intent intent = new Intent();
intent.setAction("my.broadcast.test");
sendBroadcast(intent);
或者这么发:
Intent intent = new Intent(context, TestBroadcastReceiver.class);
sendBroadcast