成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android ApiDemo 慣用代碼解析

移動開發 Android
一直想把Android的ApiDemo里面的Demo寫出來,一來可以方便自己查看,二來方便大家能夠早一點切入,從基礎的控件到界面布局乃至到OPEN GL 等深入知識。

一、關于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

責任編輯:閆佳明 來源: myexception
相關推薦

2013-12-19 13:40:44

Android ApiAndroid開發Android SDK

2013-12-19 13:51:12

Android ApiAndroid開發Android SDK

2013-12-19 14:32:31

Android ApiAndroid開發Android SDK

2013-12-19 14:34:52

Android ApiAndroid開發Android SDK

2013-12-19 14:36:43

Android ApiAndroid開發Android SDK

2013-12-19 14:13:16

Android ApiAndroid開發Android SDK

2013-12-19 14:16:46

Android ApiAndroid開發Android SDK

2013-12-19 14:00:39

Android ApiAndroid開發Android SDK

2013-12-19 14:28:04

Android ApiAndroid開發Android SDK

2011-06-09 15:15:52

RAII

2011-09-07 14:01:41

Android Wid實例

2011-10-31 14:53:23

Dart

2009-12-14 10:03:57

Ruby慣用法

2015-07-13 09:46:44

Java習慣用法

2024-02-01 00:10:21

C++PIMPL編程

2009-03-10 14:17:53

微軟招聘曝光

2010-01-27 16:21:29

Android多媒體播

2009-12-15 15:20:36

2019-01-16 18:39:24

數據開發模型

2024-02-02 12:42:42

C++Policy模板
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人在线| 亚洲精品不卡 | 久久久爽爽爽美女图片 | 日韩中文字幕一区 | 亚洲国产日韩欧美 | 在线一区 | 国产精品99 | 久久免费观看视频 | 亚洲理论在线观看电影 | 精品国产久 | 久久久精品视频一区二区三区 | 亚洲日韩中文字幕一区 | 黄色网址在线免费播放 | 国产一级一级国产 | 精品一区二区在线视频 | 欧美成人高清视频 | 亚洲欧美在线一区 | 在线播放中文字幕 | 日本天天操 | 日韩一区二区福利视频 | 国产精品国产精品国产专区不片 | 亚洲高清在线观看 | 91精品国产91久久久久福利 | 啪啪免费 | 亚洲欧美激情国产综合久久久 | 毛片在线免费 | 日本中文字幕在线视频 | 国产丝袜一区二区三区免费视频 | 精品国产一区二区三区久久久蜜月 | 日韩精品在线观看一区二区三区 | 久久精品视频在线观看 | 中文字幕乱码一区二区三区 | 四虎影院在线观看免费视频 | 殴美一级片 | 中文字幕专区 | 日本久久www成人免 成人久久久久 | 综合网在线 | 国产视频中文字幕 | 亚洲精品九九 | 99精品欧美一区二区三区综合在线 | 国产成年人小视频 |