編輯:關於Android編程
為了進行系統級別的消息通知,Android引入了廣播的概念。並且Android中的廣播更加靈活,因為應用程序可以自己發布廣播與接收廣播。發送廣播就需要借助Intent來發送,而接收廣播則需要利用BroadcastReceiver類,通過重載onReceive方法來進行接收廣播操作。
首先,接收系統廣播。如何接收系統廣播呢,在這有2種方式,動態和靜態。
動態接收,則新建一個類繼承自BroadcastReceiver並實現onReceive方法,但是,這個接收廣播子類怎麼知道要接收哪一個廣播呢?那麼就需要通過IntentFilter類添加相應的動作,然後通過Activity的registerBroadcast方法傳入接收廣播子類與IntentFilter對象將接收廣播的動作注冊到應用中。由此實現了接收廣播的操作,那麼接收的是何種廣播則是由IntentFilter添加的動作決定。當然,如果要調用系統的功能,則需要在AndroidManifest文件中添加相應的權限。
那麼何為靜態接收呢?動態的接收都是需要應用程序打開後才能接收,但若我需要監聽一些廣播但不需要程序啟動的話怎麼辦呢?例如監聽系統開機廣播,這時候就需要靜態接收廣播了。靜態接收同樣是需要新建一個子類繼承BroadcastReceiver並實現onReceive方法。剩下的就交給AndroidManifest文件了,在此文件中添加receiver標簽(所有廣播的接收都在這),通過指定接收器的名字以及Intent-Filter標簽的動作來完成廣播接收。
以上描述了廣播的接收,那麼我們自己可不可以建立一條廣播來發送呢?答案是肯定的。上面講了發送廣播是需要利用Intent的。通過在Intent中傳入廣播類型參數,然後調用sendBroadcast方法將廣播發送出去,就完成了廣播的發送。當然,廣播的發送也有不同的模式,Android裡就有2種廣播模式:無序和有序。無序方式就如上所述,只要有監聽該廣播的接收器都會同時接收到該廣播。但是有序的廣播就有了先後次序。有序的發送廣播也很簡單,之需要將sendBroadcast方法換成sendOrderedBroadcast方法即可。不過此方法有2個參數,第一個仍是Intent對象,第二個則是與權限相關的字符串。
那麼有的時候我們希望我們發送的廣播與接收的廣播都只在程序內部進行,外部與本程序的廣播一點關系都沒,那麼怎麼辦呢?這就需要使用本地廣播了。通過LocalBroadcastManager類,調用對應的sendBroadcast和registerBroadcast方法來發送與接收廣播。(通過LocalBroadcastManager.getInstance方法來獲得LocalBroadcastManager實例)。
至此,所有關於廣播的內容都描述完畢。
Context在開發Android應用的過程中扮演著非常重要的角色,比如啟動一個Activity需要使用context.startActivity方法,將一個xml文件轉
引言從GraphicsLab Project項目立項以來,一直都在忙著搭建Shader的實驗環境,現在基本的實驗環境已經搭建完畢,所以就試著使用它來編寫一些效果。本篇文章
最近項目裡要做一個簡單的曲線圖來標識數據,開始以為很簡單,android已經有那麼多的開源圖表庫了,什麼achartenginee,hellochart,mpandroi
作為一個成熟的應用, 必須要有廣告. 那麼, 如何優雅地開發廣告呢? 需要注意一些細節.本文提供一個簡單的示例, 代碼僅供參考.需求:1. 下載廣告在歡迎頁面中, 啟動一