- 新建一个类继承BroadcastReceiver
public class MyBroadCast extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String str = intent.getStringExtra("name");
Toast.makeText(context, "收到一个广播:" + str, Toast.LENGTH_SHORT).show();
}
}
2.需要进行注册
静态注册 在AndroidManifest中注册
注册无序的广播
<receiver android:name=".MyBroad">
<intent-filter>
<action android:name="com.tang.zz_work_broastcast"></action>
</intent-filter>
</receiver>
注册有序的广播,需要添加优先级
指定优先级属性,范围在1000~-1000之间,数值越高越先执行.
<receiver android:name=".MyBroad2">
<intent-filter android:priority="20">
<action android:name="com.tang.zz_work_broastcast"></action>
</intent-filter>
</receiver>
<receiver android:name=".MyBroad2">
<intent-filter android:priority="10">
<action android:name="com.tang.zz_work_broastcast"></action>
</intent-filter>
</receiver>
动态注册 在代码中注册
public class MainActivity extends Activity {
private MyBroadcastReceiver receiver = new MyBroadcastReceiver();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter();
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
this.registerReceiver(receiver, filter);
}
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
}
3 在Activity中发送消息
public class MainActivity extends AppCompatActivity {
String myBroast = "com.tang.zz_work_broastcast";
private Button btn1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.main_btn1);
final Intent intent = new Intent(myBroast);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
intent.putExtra("name", "王五");
sendBroadcast(intent);
}
});
}
}