android 服务的应用,在Activity中实现背景音乐播放
在Android應用程序里,有一種沒有UI的類(android.app.Service)——Service。簡單來說,Service是一個 background process(背景程序),通過背景程序,可以實現一些不需要UI的功能,比如播放背景音樂。
下面是一個實現播放背景音樂的例程:
在上個工程的基礎上,在Activity中添加音樂播放功能。
在工程中添加一個新類yypService(File->New->Class):
yypService 類繼承 android.app.Service,幾個有關Service 的重要概念如下:
1. Service 對象以 separated process 的方式執行,這表示 Service 與 UI(Activity)并不在同一個 process 里執行,而是各自在不同的 process 執行。
2. Android應用程序是在 Activity 啟動與停止 Service。
3. 重載(override)onStart() 方法(method)在 Service 被啟動,執行我們想要的背景功能。
4. 重載 onDestroy() 方法在 Service 被停止時,停止執行中的背景功能。
下面是Service的具體實現:
至此,一個完整的服務生成,接下來是在Activity中啟動服務。
修改 AndroidManifest.xml
在 Package Explorer 視窗里找到目前 Android 項目的資訊描述檔,名稱為 AndroidManifest.xml。這是一個用來描述 Android 應用程序「整體資訊」的文件,每個 Android 應用程序項目都會有一個。在這里修改 Androidmanifest.xml 的目的是為了「 Android 應用程序加入一個 Service 類別」,這樣才有辦法驅動 Service。
配置好之后,接下來就是在Activity中添加啟動服務代碼 Service - startService()。
在OnCreate()中添加如下代碼:
Activity 類里有一個 method 叫做 startService:
startService(Intent service)調用 startService() 即可啟動一個 Service ,只是,startService() 的參數是一個「Intent」型,并不是所要啟動的類名。「Intent」是一個很像「Event」的類,暫時還沒對Intent做深入研究,就先把它當作一個"Event"看吧?
現在,其實已經可以在Activity中播放背景音樂了,但有一個小問題,就是Activity已經被掛起或是被銷毀時,背景音樂還是在繼續播放的,這也說明Service與Activity是兩個不同的進程,我們收下尾,讓Activity在OnStop時把背景音樂也停止播放,重載Activity的OnStop:
備注:eclipse的使用小技巧,快速補全重載代碼(快捷鍵Alt+Shift+s ->? Override/implement Mothods)。至此,一個完整的播放背景音樂功能已經全部完成。
總結
以上是生活随笔為你收集整理的android 服务的应用,在Activity中实现背景音乐播放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 接口初始化_Java类的初始化
- 下一篇: linux lftp上传文件,linux