《Android 应用案例开发大全(第二版)》——6.1节Android系统的信使:Intent
本節(jié)書摘來自異步社區(qū)《Android 應(yīng)用案例開發(fā)大全(第二版)》一書中的第6章,第6.1節(jié)Android系統(tǒng)的信使:Intent ,作者李寧,更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號查看
6.1 Android系統(tǒng)的信使:Intent
Android開發(fā)權(quán)威指南(第二版)
Android系統(tǒng)從誕生之初就不允許直接訪問4大應(yīng)用程序組件1(Activity、Service、Broadcast Receiver和Content Provider),這就需要提供一種機(jī)制可以訪問這些組件,這也是Intent誕生的根本原因。
Intent對象被應(yīng)用于4大應(yīng)用程序組件中的3個(Activity、Service和Broadcast Receiver),而Content Provider會采用其他方式訪問(在后面的章節(jié)會詳細(xì)介紹)。例如,對于窗口(Activity)來說,盡管無法直接訪問窗口實例,但可以調(diào)用startActivity方法顯示窗口。為了可以更靈活地控制窗口,以及向窗口傳遞數(shù)據(jù),就需要一種技術(shù)來完成這些工作,這就是Intent對象的核心功能,所以說Intent對象從本質(zhì)上來說就相當(dāng)于一個信使,用于保存和傳輸各種數(shù)據(jù)。
服務(wù)(Service)和廣播(Broadcast)的使用方法和窗口(Activity)類似,Intent對象也用來完成類似的工作。
下面的代碼用于開始服務(wù)和發(fā)送廣播,其中都使用到了Intent對象。關(guān)于服務(wù)和廣播的細(xì)節(jié)會在后面的章節(jié)討論。
// MyService是服務(wù)類 Intent serviceIntent = new Intent(this, MyService.class); // 開始服務(wù)startService(serviceIntent)**;** // mybroadcast是廣播字符串 Intent broadcastIntent = new Intent("mybroadcast"); // 向系統(tǒng)發(fā)送一條廣播 sendBroadcast(broadcastIntent)**;**從上面的代碼可以看出,開始服務(wù)、發(fā)送廣播和顯示窗口的代碼風(fēng)格是相同的,都需要創(chuàng)建一個Intent對象,并指定相關(guān)的信息(服務(wù)指定具體的服務(wù)類;廣播指定一個字符串,被稱為Broadcast Action)。
1如果讀者繼續(xù)閱讀本書后面的章節(jié),會逐漸體會到為什么安迪-魯賓(Andy Rubin,Android之父)要這么設(shè)計。
總結(jié)
以上是生活随笔為你收集整理的《Android 应用案例开发大全(第二版)》——6.1节Android系统的信使:Intent的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脑洞大开的 iPhone 配件,看看你有
- 下一篇: Solid Edge如何制作爆炸图