BroadCastReceiver 的機制java
1. 機制
android
在 Android 裏面有各類各樣的廣播,好比電池的使用狀態,電話的接收和短信的接收都會產生一個廣播,應用程序開發者也能夠監聽這些廣播並作出程序邏輯的處理。web
public class MyBroadcastReceiver extends BroadcastReceiver { // action 名稱 String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED" ; public void onReceive(Context context, Intent intent) { if (intent.getAction().equals( SMS_RECEIVED )) { // 相關處理 : 地域變換、電量不足、來電來信; } } }
系統註冊:在 AndroidManifest.xml 中註冊ide
< receiver android:name = ".MyBroadcastReceiver" > < intent-filter android:priority = "1000" > < action android:name = " android.provider.Telephony.SMS_RECEIVED" />
固然了須要權限 :spa
< uses-permission android:name = "android.permission.RECEIVE_SMS" /> < uses-permission android:name = "android.permission.SEND_SMS" />
第二種方式:
// 廣播接收者 - 廣播的接收code
private BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // 相關處理,如收短信,監聽電量變化信息 } };
代碼中註冊:orm
IntentFilter intentFilter = new IntentFilter( "android.provider.Telephony.SMS_RECEIVED " ); registerReceiver( mBatteryInfoReceiver , intentFilter);