今天就跟大家聊聊有關(guān)如何解析Android ApiDemo慣用代碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)甘谷免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
一、關(guān)于Dialog
|--- com.example.android.apis.app/AlertDialogSamples.java
里面包含了Dialog的各種用法,有10種不同的Dialog實例。
|--- com.example.android.apis.app/FragmentDialog.java
使用DialogFragment來實現(xiàn)Dialog,可以使用onCreateView()來創(chuàng)建Dialog布局,也可以使用DialogFragment類的getDialog()方法,在里面可以使用之前創(chuàng)建Dialog的方法,返回一個Dialog。
Android官方推薦使用DialogFragment。
二、關(guān)于Pregerence
|--- com.example.android.apis.preference
這個包里面介紹了Preference的用法,包括使用Code和XML(addPreferencesFromResource)兩種方法來實現(xiàn)preference布局,使用setListFooter可以在底部添加一個布局(代碼里面是添加一個Button在底部)
三、關(guān)于Service
創(chuàng)建Servcie的方法有startService()和bindServcie()兩種:由startService()創(chuàng)建的服務(wù)的目的只是服務(wù)的啟動和終止,而bindServcie()創(chuàng)建的的服務(wù)是為了服務(wù)的遠(yuǎn)程控制(一般都會獲得一個服務(wù)對象實例).
|--- com.example.android.apis.app/LocalServcie.java
由startService()創(chuàng)建的服務(wù)調(diào)用完onCreate()方法后,將繼續(xù)調(diào)用onStartCommand()方法,該方法有返回值,可以通過該返回值來設(shè)置Servcie被強行關(guān)閉之后是否重新再啟動
通過在代碼里面添加Log,得到bindServcie()的執(zhí)行流程:1.客戶端請求連接服務(wù)bindServcie()----->2.在綁定的服務(wù)生成之后,Android會調(diào)用服務(wù)的onBind()回調(diào)方法,用來處理服務(wù)綁定,onBind()方法返回一個IBinder對象,用于與服務(wù)通信----->3.客戶端的ServcieConnection對象的onServiceConnected(cn,IBinder)方法使用第2步傳遞的IBinder對象,調(diào)用服務(wù)端的getService()得到服務(wù)實例.
|--- com.example.android.apis.app/RemoteServcie.java
AIDL是一種接口定義語言,用來約束兩個進(jìn)程之間的通信規(guī)則,供編譯器生成代碼,用來實現(xiàn)Android設(shè)備上兩個進(jìn)程間的通信。
以ISecondary.aidl文件為例,Android會根據(jù)AIDL文件中定義的接口自動生成綁定遠(yuǎn)程服務(wù)所需要的代碼,整個bindServcie()的執(zhí)行流程如下:
1.進(jìn)程A調(diào)用bindServcie()請求連接RemoteService
2.進(jìn)程B在服務(wù)生成之后回調(diào)onBind()方法,生成用于處理Binder IPC的IBinder對象,并返回
3.進(jìn)程A調(diào)用回調(diào)方法onServiceConnected()方法,利用onBind()返回的IBinder,將其傳遞給IScondary.Stub.asInterface()函數(shù),并使用它生成與RemoteService服務(wù)綁定在一起的服務(wù)代理對象ISeondary.Stub.Proxy,***將其保存到mSecondaryService成員變量中。至此,RemoteService的ISecondary接口的綁定就完成了。
4.進(jìn)程A使用服務(wù)代理對象ISeondary.Stub.Proxy,調(diào)用RemoteService服務(wù)的getPid()代理方法
5.Binder IPC:服務(wù)代理對象ISeondary.Stub.Proxy向服務(wù)Binder對象ISeondary.Stub傳遞Binder IPC數(shù)據(jù)
6.進(jìn)程B調(diào)用RemoteService服務(wù)的getPid() Stub方法,ISeondary.Stub服務(wù)Binder對象獲取Binder IPC數(shù)據(jù)后,會調(diào)用RemoteService服務(wù)里面實現(xiàn)的getPid() Stub方法,將服務(wù)進(jìn)程ID返回給進(jìn)程A
看完上述內(nèi)容,你們對如何解析Android ApiDemo慣用代碼有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁題目:如何解析AndroidApiDemo慣用代碼
地址分享:http://www.chinadenli.net/article30/ihoeso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站設(shè)計公司、建站公司、網(wǎng)站內(nèi)鏈、外貿(mào)建站、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)