一聽到廣播我們第一感覺就會聯想到小時候村里面的廣播,每逢村里有什么活動都是通過廣播發送的。收聽收音機也是一種廣播,在收音機中有很多個廣播電臺,每個廣播電臺播放的內容都不相同。接受廣播時廣播(發送方)并不在意我們(接收方)接收到廣播時如何處理。好比我們收聽交通電臺的廣播,電臺中告訴我們現在在交通狀況如何,但它并不關心我們接收到廣播時做如何做出處理,這不是廣播應該關心的問題,OK,到這里我們從生活中的一些小例子淺淺的理解了一下廣播,那么Android 中的廣播是如何操作的呢?
接受者1使用靜態廣播(同樣新建一個安卓項目新建一個java類就行)
public class MyReceived01 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("com.zy.android_sender.955".equals(intent.getAction())){ String data=intent.getStringExtra("data"); Log.i("test","01號接受者收到廣播了:"+data); } }}AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zking.android_received01"> <application android:allowBackup="true" android:icon="@m接受者2(我們使用動態) 還是和接受者1一樣新建一個類然后繼承自BroadcastReceiverpublic class MyReceived02 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("com.zy.android_sender.955".equals(intent.getAction())){ String data=intent.getStringExtra("data"); Log.i("test","02號接受者收到廣播了:"+data); } }}不同的是動態廣播不需要清單文件的配置而是在java代碼中實現
public class MainActivity extends AppCompatActivity { private MyReceived02 myReceived02; private IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myReceived02 = new MyReceived02(); intentFilter = new IntentFilter(); intentFilter.addAction("com.zy.android_sender.955"); } @Override protected void onResume() { super.onResume(); //動態注冊廣播 registerReceiver(myReceived02,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); //注銷動態廣播 unregisterReceiver(myReceived02); }}需要注意的是動態廣播需要在onDestroy()方法中注銷動態廣播 到這個里自定義廣播接受者和發送者就完成了,大家可以跟著步驟看看這倆接受者的特點
不過黏性廣播已經過時了這里只需要了解即可
新聞熱點
疑難解答