安卓四大组件之二广播
定義
BroadcastReceiver,“廣播接收者”的意思,顧名思義,它就是用來接收來自系統和應用中的廣播。在Android系統中,廣播體現在方方面面,例如當開機完成后系統會產生一條廣播,接收到這條廣播就能實現開機啟動服務的功能;當網絡狀態改變時系統會產生一條廣播,接收到這條廣播就能及時地做出提示和保存數據等操作;當電池電量改變時,系統會產生一條廣播,接收到這條廣播就能在電量低時告知用戶及時保存進度等等。Android中的廣播機制設計的非常出色,很多事情原本需要開發者親自操作的,現在只需等待廣播告知自己就可以了,大大減少了開發的工作量和開發周期。而作為應用開發者,就需要數練掌握Android系統提供的一個開發利器,那就是BroadcastReceiver。
在我們詳細分析創建BroadcastReceiver的兩種注冊方式前,我們先羅列本次分析的大綱:
(1)對靜態和動態兩種注冊方式進行概念闡述以及演示實現步驟
(2)簡述兩種BroadcastReceiver的類型(為后續注冊方式的對比做準備)
(3)在默認廣播類型下設置優先級和無優先級情況下兩種注冊方式的比較
(4)在有序廣播類型下兩種注冊方式的比較
(5)通過接受打電話的廣播,在程序(Activity)運行時和終止運行時,對兩種注冊方式的比較
(6)總結兩種方式的特點
一、靜態和動態注冊方式
? 構建Intent,使用sendBroadcast方法發出廣播定義一個廣播接收器,該廣播接收器繼承BroadcastReceiver,并且覆蓋onReceive()方法來響應事件注冊該廣播接收器,我們可以在代碼中注冊(動態注冊),也可以AndroidManifest.xml配置文件中注冊(靜態注冊)。
案例解析:
1.主界面設計
如圖:
2.后臺代碼設計
3.創建自己的廣播接收器類
package com.aaa.btdemo02;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.util.Log; public class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//接受廣播if(intent==null)return;//intent:接受從主端傳遞過來的數據,action數據;String action=intent.getAction();//針對上述做判斷;第一個判斷是否為空也可以寫成action.isEmptyif(!TextUtils.isEmpty(action)&&"android.intent.action.receiverdata".equals(action)){String msg=intent.getStringExtra("msg");//不習慣可以使用BundleLog.i("喜洋洋-->",msg);}} }4.注冊廣播
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.aaa.btdemo02"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.Btdemo02"><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><receiver android:name=".MyReceiver"android:exported="true"><intent-filter><!-- 自定義的action名 --><action android:name="android.intent.action.receiverdata"/></intent-filter></receiver></application></manifest>5.運行效果
在這里插入圖片描述
總結
以上是生活随笔為你收集整理的安卓四大组件之二广播的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1024华为HDC值得拥有
- 下一篇: 图书推广销售方案