- 新建一個類繼承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);
}
});
}
}