IntentFilter intentFilter = new IntentFilter( "android.provider.Telephony.SMS_RECEIVED " ); registerReceiver( mBatteryInfoReceiver , intentFilter);
registerReceiver(receiver, filter, broadcastPermission, scheduler)
unregisterReceiver(mBatteryInfoReceiver);
在AndroidManifest.xml的application里面定义receiver并设置要接收的action。
< receiver android:name = ".MyBroadcastReceiver" > < intent-filter android:priority = "777" > <action android:name = "android.provider.Telephony.SMS_RECEIVED" /> </ intent-filter > </ receiver >
在Activity中声明BroadcastReceiver的扩展对象,在onResume中注册,onPause中卸载.
public class MainActivity extends Activity { MyBroadcastReceiver receiver; @Override protected void onResume() { // 动态注册广播 (代码执行到这才会开始监听广播消息,并对广播消息作为相应的处理) receiver = new MyBroadcastReceiver(); IntentFilter intentFilter = new IntentFilter( "android.provider.Telephony.SMS_RECEIVED" ); registerReceiver( receiver , intentFilter); super.onResume(); } @Override protected void onPause() { // 撤销注册 (撤销注册后广播接收者将不会再监听系统的广播消息) unregisterReceiver(receiver); super.onPause(); } }