2.1 Android里有个BroadcastReceiver,即广播接收器。其原理根据我的理解:当任何应用程序发起一个广播动作(这个广播动作通过显示调用SendBroadcast发起,或执行其他方法【例如sendTextMessage方法】隐示发起),那么所有继承了BroadcastReceiver类的子类就可以监听到该广播,如果该广播的Intent的action与该BroadcastReceiver类过滤的action相同,那么这个BroadcastReceiver就会接收该广播,直接执行该BroadcastReceiver里的onReceive方法,否则就不做任何反应。
2.2 一个BroadcastReceiver接收了该广播,还可以扔掉该广播abortBroardcastReceiver.
2.3 BroadcastReceiver从接收到感兴趣的广播事件时启动,在onReceive执行完毕时结束它的生命周期,有效时间是10s;所以繁杂的工作不要放在这里处理。
2.4 BroadcastReceiver可以定义自己的action为任意字符串值,当然发起广播的时候,也可相应的把该Intent的action设置成该值即可。
其实开机状态,打电话,发短信都是广播机制,我们的短信拦截程序也借鉴了方法。