安卓四大组件之二广播
定義
BroadcastReceiver,“廣播接收者”的意思,顧名思義,它就是用來(lái)接收來(lái)自系統(tǒng)和應(yīng)用中的廣播。在Android系統(tǒng)中,廣播體現(xiàn)在方方面面,例如當(dāng)開(kāi)機(jī)完成后系統(tǒng)會(huì)產(chǎn)生一條廣播,接收到這條廣播就能實(shí)現(xiàn)開(kāi)機(jī)啟動(dòng)服務(wù)的功能;當(dāng)網(wǎng)絡(luò)狀態(tài)改變時(shí)系統(tǒng)會(huì)產(chǎn)生一條廣播,接收到這條廣播就能及時(shí)地做出提示和保存數(shù)據(jù)等操作;當(dāng)電池電量改變時(shí),系統(tǒng)會(huì)產(chǎn)生一條廣播,接收到這條廣播就能在電量低時(shí)告知用戶(hù)及時(shí)保存進(jìn)度等等。Android中的廣播機(jī)制設(shè)計(jì)的非常出色,很多事情原本需要開(kāi)發(fā)者親自操作的,現(xiàn)在只需等待廣播告知自己就可以了,大大減少了開(kāi)發(fā)的工作量和開(kāi)發(fā)周期。而作為應(yīng)用開(kāi)發(fā)者,就需要數(shù)練掌握Android系統(tǒng)提供的一個(gè)開(kāi)發(fā)利器,那就是BroadcastReceiver。
在我們?cè)敿?xì)分析創(chuàng)建BroadcastReceiver的兩種注冊(cè)方式前,我們先羅列本次分析的大綱:
(1)對(duì)靜態(tài)和動(dòng)態(tài)兩種注冊(cè)方式進(jìn)行概念闡述以及演示實(shí)現(xiàn)步驟
(2)簡(jiǎn)述兩種BroadcastReceiver的類(lèi)型(為后續(xù)注冊(cè)方式的對(duì)比做準(zhǔn)備)
(3)在默認(rèn)廣播類(lèi)型下設(shè)置優(yōu)先級(jí)和無(wú)優(yōu)先級(jí)情況下兩種注冊(cè)方式的比較
(4)在有序廣播類(lèi)型下兩種注冊(cè)方式的比較
(5)通過(guò)接受打電話的廣播,在程序(Activity)運(yùn)行時(shí)和終止運(yùn)行時(shí),對(duì)兩種注冊(cè)方式的比較
(6)總結(jié)兩種方式的特點(diǎn)
一、靜態(tài)和動(dòng)態(tài)注冊(cè)方式
? 構(gòu)建Intent,使用sendBroadcast方法發(fā)出廣播定義一個(gè)廣播接收器,該廣播接收器繼承BroadcastReceiver,并且覆蓋onReceive()方法來(lái)響應(yīng)事件注冊(cè)該廣播接收器,我們可以在代碼中注冊(cè)(動(dòng)態(tài)注冊(cè)),也可以AndroidManifest.xml配置文件中注冊(cè)(靜態(tài)注冊(cè))。
案例解析:
1.主界面設(shè)計(jì)
如圖:
2.后臺(tái)代碼設(shè)計(jì)
3.創(chuàng)建自己的廣播接收器類(lèi)
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:接受從主端傳遞過(guò)來(lái)的數(shù)據(jù),action數(shù)據(jù);String action=intent.getAction();//針對(duì)上述做判斷;第一個(gè)判斷是否為空也可以寫(xiě)成action.isEmptyif(!TextUtils.isEmpty(action)&&"android.intent.action.receiverdata".equals(action)){String msg=intent.getStringExtra("msg");//不習(xí)慣可以使用BundleLog.i("喜洋洋-->",msg);}} }4.注冊(cè)廣播
<?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.運(yùn)行效果
在這里插入圖片描述
總結(jié)
以上是生活随笔為你收集整理的安卓四大组件之二广播的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1024华为HDC值得拥有
- 下一篇: 图书推广销售方案