91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解析Android ApiDemo慣用代碼

發布時間:2021-11-26 16:08:28 來源:億速云 閱讀:161 作者:柒染 欄目:移動開發

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

一、關于Dialog

|--- com.example.android.apis.app/AlertDialogSamples.java

里面包含了Dialog的各種用法,有10種不同的Dialog實例。

|--- com.example.android.apis.app/FragmentDialog.java

使用DialogFragment來實現Dialog,可以使用onCreateView()來創建Dialog布局,也可以使用DialogFragment類的getDialog()方法,在里面可以使用之前創建Dialog的方法,返回一個Dialog。

Android官方推薦使用DialogFragment。

二、關于Pregerence

|--- com.example.android.apis.preference

這個包里面介紹了Preference的用法,包括使用Code和XML(addPreferencesFromResource)兩種方法來實現preference布局,使用setListFooter可以在底部添加一個布局(代碼里面是添加一個Button在底部)

三、關于Service

創建Servcie的方法有startService()和bindServcie()兩種:由startService()創建的服務的目的只是服務的啟動和終止,而bindServcie()創建的的服務是為了服務的遠程控制(一般都會獲得一個服務對象實例).

|--- com.example.android.apis.app/LocalServcie.java

由startService()創建的服務調用完onCreate()方法后,將繼續調用onStartCommand()方法,該方法有返回值,可以通過該返回值來設置Servcie被強行關閉之后是否重新再啟動

通過在代碼里面添加Log,得到bindServcie()的執行流程:1.客戶端請求連接服務bindServcie()----->2.在綁定的服務生成之后,Android會調用服務的onBind()回調方法,用來處理服務綁定,onBind()方法返回一個IBinder對象,用于與服務通信----->3.客戶端的ServcieConnection對象的onServiceConnected(cn,IBinder)方法使用第2步傳遞的IBinder對象,調用服務端的getService()得到服務實例.

|--- com.example.android.apis.app/RemoteServcie.java

AIDL是一種接口定義語言,用來約束兩個進程之間的通信規則,供編譯器生成代碼,用來實現Android設備上兩個進程間的通信。

以ISecondary.aidl文件為例,Android會根據AIDL文件中定義的接口自動生成綁定遠程服務所需要的代碼,整個bindServcie()的執行流程如下:

1.進程A調用bindServcie()請求連接RemoteService

2.進程B在服務生成之后回調onBind()方法,生成用于處理Binder IPC的IBinder對象,并返回

3.進程A調用回調方法onServiceConnected()方法,利用onBind()返回的IBinder,將其傳遞給IScondary.Stub.asInterface()函數,并使用它生成與RemoteService服務綁定在一起的服務代理對象ISeondary.Stub.Proxy,***將其保存到mSecondaryService成員變量中。至此,RemoteService的ISecondary接口的綁定就完成了。

4.進程A使用服務代理對象ISeondary.Stub.Proxy,調用RemoteService服務的getPid()代理方法

5.Binder IPC:服務代理對象ISeondary.Stub.Proxy向服務Binder對象ISeondary.Stub傳遞Binder IPC數據

6.進程B調用RemoteService服務的getPid() Stub方法,ISeondary.Stub服務Binder對象獲取Binder IPC數據后,會調用RemoteService服務里面實現的getPid() Stub方法,將服務進程ID返回給進程A

看完上述內容,你們對如何解析Android ApiDemo慣用代碼有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐边县| 台南市| 乐业县| 迭部县| 安国市| 孟连| 景泰县| 陵川县| 永平县| 荥阳市| 淮滨县| 齐齐哈尔市| 北安市| 韶山市| 广安市| 元阳县| 墨江| 五寨县| 平原县| 铅山县| 南漳县| 淮阳县| 太湖县| 百色市| 德庆县| 崇明县| 金山区| 久治县| 永登县| 永宁县| 石台县| 苗栗县| 鄂州市| 商都县| 皋兰县| 莒南县| 三门峡市| 额尔古纳市| 花莲市| 固阳县| 凤冈县|