移動開發技術3:基于廣播組件的簡易音樂盒設計
需求分析:
本次實驗目標為完成一個基于廣播組件的簡單音樂盒
需要實作的功能:播放、暫停、結束、上一首、下一首
BroadcastReceiver簡述
BroadcastReceiver是Android四大組件之一,是用來接收來自系統和應用中的廣播,BroadcastReceiver有兩種注冊方式,分別是靜態注冊和動態注冊,
靜態注冊
注冊方式:在AndroidManifest里進行注冊,
首先在Application節點里頭,添加一個receiver節點,name則是我們的廣播接收者,接著,在AndroidMainfest.xml里的application節點里添加receiver節點,并且添加意圖過濾的action且需要添加權限
注意
靜態注冊,內部廣播接收者
1、這個內部廣播接收者需要宣告為靜態的;
2、這個內部的靜態接收者必須是public的;
3、在receiver的name里是外部類的名字$內部類的名字
動態注冊
1.在相關的activity中new MyBroadcastReceiver()
2.new intentFilter,呼叫其setAction()方法,引數中傳入相關值的action呼叫3.context.registerReceiver()方法進行注冊,方法的第一個引數為broadcastReceiver物件,第二個則是intentFilter物件
兩種注冊方式的區別
靜態注冊可以一直監聽著,即使應用沒有起來,也可以監聽著,但是耗資源,長期監聽著,
靜態注冊的廣播優先級高于動態注冊的廣播,
動態注冊的優點就是省資源,需要的時候才監聽,不需要的時候需要取消注冊,
值得注意的是,一般Android專案中是禁止靜態注冊的
原因:如果不是必須一直監聽著的廣播,一直監聽著會消耗資源,所以靜態注冊會提高系統的效率,而動態注冊的話需要釋放資源取消注冊,否則會報錯,這樣子有利于提高系統的速度,
實驗內容
1.在AndroidManifest.xml里配置service
<service
android:name=".MusicService"
android:enabled="true"
android:exported="true"></service>
2.添加實驗需要的圖片以及音樂資源
圖片資源復制到res/drawable檔案夾下即可(記得調整圖片大小)
音樂資源首先要在app下新建一個assets檔案夾,然后將MP3檔案存放到該檔案夾下即可

3.UI設計部分
使用兩個Textview控制元件顯示歌曲資訊,四個ImageButton控制元件以實作相應功能

4.邏輯控制代碼
MainActivity.java
首先在函式最外層定義所需要用到的變數和子類,其中activityReceiver用于監聽Service傳回的廣播;onCreate()函式用于獲取相應按鈕以及添加監聽器、注冊receiver;ActivityReceiver子類,負責監聽從Service傳回來的廣播,并用switch控制系統狀態,且定義了在音樂播放的不同狀態下顯示的圖片;onClick函式,用switch判斷點擊事件,向Service發送廣播
MusicService.java
onCreate函式
添加監聽器、注冊receiver,并向Activity發送廣播;MyReceiver子類,接收MainActivity發來的資訊,并發送廣播,定義了接收到來自MainActivity的廣播后的處理程序;使用prepareAndPlay函式,準備并播放音樂
結果展示

代碼倉庫:
broadcast
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/226888.html
標籤:其他
