BroadcastReceiver是Android体系的四大组件之一,本质上是一种全局的监听器,用于监听系统全局的广播消息,正式因为其本质为全局监听,因此可以非常方便的实现系统中不同组件之间的通信。也方便我们自己的app针对系统开机、电量低等广播做出相应反映。同时我们也可以自己发送广播,来实现不同组件之间的通信
系统接收短信广播,然后弹出Toast:
package cn.lixyz.broadcastreceiver; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; import android.widget.Toast; public class MainActivity extends Activity { private IntentFilter filter; private SMSReceiver sms; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); sms = new SMSReceiver(); registerReceiver(sms, filter); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); unregisterReceiver(sms); } class SMSReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "有短信", Toast.LENGTH_SHORT).show(); Log.d("TTTT", "~~~~~~~"); } } }