标准广播是一种完全异步执行的广播,广播发出后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息。无法被截断。
一、新建广播接收器,右键New->Other->Broadcast Receiver,就会创建一个广播接收器
package group.chicai.study; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context,"接受到我的广播",Toast.LENGTH_SHORT).show(); abortBroadcast(); } }
二、注册这个广播接收器的触发行为
<receiver android:name=".MyReceiver" android:enabled="true" android:exported="true"> <intent-filter ><!-- 静态注册 --> <action android:name="group.chicai.study.MYBOASTCASE" /> </intent-filter> </receiver>
//动态注册 intentFilter = new IntentFilter(); intentFilter.addAction("group.chicai.study.MYBOASTCASE"); MyReceiver my = new MyReceiver(); registerReceiver(my,intentFilter);
三、发送广播
Button button8 = (Button)findViewById(R.id.button8); button8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent("group.chicai.study.MYBOASTCASE"); sendBroadcast(intent); } });
同样的,系统上定义了很多检查状态改变的action,可以让接收器去注册这个行为,这样当系统的某些状态改变时,就会触发这些接收器了。例如:网络改变的监督-android.net.conn.CONNECTIVITY_CHANGE