durw4.cn-国产精品不卡在线,日韩在线观看一区二区,波波电影院一区二区三区,久久久久国产一区二区三区四区

新文化網 > 消費 >Binder基本使用

Binder基本使用

2020-03-31 10:09:41 來源:互聯網 閱讀:-

Android開發中,Binder是一種跨進程通信方式,而使用AIDL可以實現Binder的工作。

如何使用它是了解它的第一步,本文章主要記錄使用Binder的一些步驟。(代碼思路參考《Android開發藝術探索》任玉剛 著)

1.創建兩個activity

兩個activity(OneActivity、TwoActivity),將OneActivity假設為服務端,TwoActivity假設為客戶端,分別運行在不同進程中

在AndroidManifest.xml中,為TwoActivity設置進程,這樣兩個activity就分別運行在不同的進程中了

2. 創建AIDL文件

在AIDL文件中聲明客戶端想要調用服務端的方法

interface IInfManager {    /**     * Demonstrates some basic types that you can use as parameters     * and return values in AIDL.     */    void setName(String name);     String getName();}

AIDL文件聲明完,activity等文件并不能調用到IInfManager接口,需要在app的build.gradle文件中的android{}中添加

sourceSets{    main{        java.srcDirs = ['src/main/java', 'src/main/aidl']    }}

然后點擊sync now按鈕,activity文件就可以調用到IInfManager接口了,可以在app\build\generated\source\aidl\debug文件下找到自動生成的IInfManager.java文件。

3.創建Service

Service中創建Binder對象,在onBind方法中返回這個對象,Binder對象中具體實現了IInfManager接口中的方法。Service需要在AndroidManifest.xml中注冊。

public class InfManageService extends Service{     private String name;     @Override    public int onStartCommand(Intent intent, int flags, int startId) {        name = intent.getStringExtra("name");        return super.onStartCommand(intent, flags, startId);    }     @Nullable    @Override    public IBinder onBind(Intent intent) {        return binder;    }     private Binder binder = new IInfManager.Stub() {        @Override        public void setName(String mName) throws RemoteException {            name = mName;        }         @Override        public String getName() throws RemoteException {            return name;        }    };}

4.服務端OneActivity

OneActivity中設置按鈕跳轉至TwoActivity,這里為了簡單,使用startService可以為InfManageService中name變量初始化"zhangsan"的值。也可以與客戶端TwoActivity中一樣,綁定service,建立連接,來設置name的值(具體參考下一步客戶端的用法)。

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_one);     Intent intent = new Intent(OneActivity.this, InfManageService.class);    intent.putExtra("name", "zhangsan");    startService(intent);     btn_one_gototwo = (Button) findViewById(R.id.btn_one_gototwo);     btn_one_gototwo.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            Intent intent = new Intent(OneActivity.this, TwoActivity.class);            startActivity(intent);        }    });}

5.客戶端TwoActivity

首先綁定InfManageService服務,建立連接,連接成功后通過返回的IBinder對象可以獲得IInfManager接口,可以通過這個接口去使用服務端的方法。

private TextView tv_two_name;private Button btn_two_change; private IInfManager iInfManager; private ServiceConnection connection = new ServiceConnection() {    @Override    public void onServiceConnected(ComponentName name, IBinder service) {        iInfManager = IInfManager.Stub.asInterface(service);        try {            tv_two_name.setText(iInfManager.getName());            Log.i("TwoActivity","first:" + iInfManager.getName());            iInfManager.setName("lisi");            Log.i("TwoActivity","next:" + iInfManager.getName());        }catch (RemoteException e){         }    }     @Override    public void onServiceDisconnected(ComponentName name) {     }}; @Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_two);     tv_two_name = (TextView) findViewById(R.id.tv_two_name);    btn_two_change = (Button) findViewById(R.id.btn_two_change);     Intent intent = new Intent(TwoActivity.this, InfManageService.class);    bindService(intent, connection, Context.BIND_AUTO_CREATE);     btn_two_change.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            try {                iInfManager.setName("wangmazi");                tv_two_name.setText(iInfManager.getName());            } catch (RemoteException e) {                e.printStackTrace();            }        }    });} @Overrideprotected void onDestroy() {    super.onDestroy();    unbindService(connection);}

上面代碼onServiceConnected方法中,首先在TwoActivity界面中顯示了服務端的name變量內容"zhangsan"

Binder基本使用

推薦閱讀:民樂音源

(正文已結束)

熱點圖片 更多>>
比《慶余年》更好看的穿越劇,19年前就拍好了!無法超越的經典 比《慶余年》更好看的穿
枕上書:司命、連宋劇中采用原班人馬,是刻意為之還是難言之隱? 枕上書:司命、連宋劇中
《錦衣之下》要拍續集?劇二代撲街的教訓還不夠多嗎? 《錦衣之下》要拍續集?
一部非典型正劇《慶余年》,竟然讓我讀懂了人生 一部非典型正劇《慶余年
新聞頭條
精彩專題 更多>>
詩詞大會專家指出紫薇神句“山無棱,天地合”有錯字,瓊瑤沒回應 1詩詞大會專家指出紫薇神句
點擊排行 更多>>
精品视频一区三区九区| 91精品国产全国免费观看 | 亚洲成人一区二区| 国产精品69毛片高清亚洲| 欧美在线看片a免费观看| 久久久久久久久久久久久夜| 亚洲成人福利片| 91毛片在线观看| 国产亚洲一区二区三区四区| 免费观看30秒视频久久| 欧美午夜视频网站| 亚洲欧美成人一区二区三区| 国产成人8x视频一区二区| 精品免费视频.| 美女性感视频久久| 欧美精品1区2区| 亚洲成人av电影| 91福利视频在线| 亚洲乱码日产精品bd| 成人黄色小视频| 久久精品日产第一区二区三区高清版| 久久国产婷婷国产香蕉| 欧美一区二区视频观看视频| 亚洲bdsm女犯bdsm网站| 欧美午夜精品久久久久久孕妇| 亚洲美女免费在线| 色婷婷综合激情| 一区二区三区免费看视频| 色婷婷亚洲综合| 亚洲一区二区视频| 欧美三级在线播放| 一区二区三区精品在线| 色网站国产精品| 亚洲夂夂婷婷色拍ww47| 欧美日韩视频专区在线播放| 午夜精品久久久久久不卡8050| 欧美精选一区二区| 蜜臀99久久精品久久久久久软件| 欧美精品久久99| 麻豆91免费观看| 久久久久久黄色| 成人av在线资源| 亚洲女性喷水在线观看一区| 色天使久久综合网天天| 亚洲丶国产丶欧美一区二区三区| 欧美日本一区二区在线观看| 视频一区二区国产| 日韩精品自拍偷拍| 国产白丝精品91爽爽久久| 中文av一区特黄| 色狠狠色噜噜噜综合网| 亚洲成人第一页| 精品福利一区二区三区| 国产成人综合在线观看| 亚洲视频免费在线| 欧美日本韩国一区| 国产真实乱对白精彩久久| 国产精品色眯眯| 欧美在线免费观看亚洲| 蜜桃视频在线观看一区二区| 国产女主播一区| 在线看国产一区二区| 蓝色福利精品导航| 中文字幕亚洲视频| 欧美肥大bbwbbw高潮| 国产成人午夜精品5599| 一区二区国产视频| 精品成人一区二区| 日本久久一区二区| 日产欧产美韩系列久久99| 久久久精品免费免费| 91国偷自产一区二区三区观看| 美女被吸乳得到大胸91| 国产精品卡一卡二卡三| 欧美精品日韩综合在线| 国产成人激情av| 午夜精品久久久久久久久| 中文字幕第一区二区| 欧美日韩大陆在线| 国产.欧美.日韩| 日本美女一区二区三区视频| 国产精品高潮久久久久无| 欧美一区二区三区四区在线观看 | 亚洲一区成人在线| 久久蜜桃一区二区| 欧美日本一道本在线视频| 懂色av中文一区二区三区| 午夜电影久久久| 国产精品麻豆视频| 亚洲精品一区二区三区四区高清 | 成人三级伦理片| 天堂va蜜桃一区二区三区| 中文久久乱码一区二区| 制服丝袜国产精品| 色偷偷88欧美精品久久久| 国产美女在线精品| 日本欧美久久久久免费播放网| 中文字幕日韩欧美一区二区三区| 日韩欧美在线网站| 欧美日韩亚洲综合在线 | 国产成人在线网站| 丝袜脚交一区二区| 亚洲视频网在线直播| 久久久久久亚洲综合| 91麻豆精品国产91久久久资源速度| 成人av在线看| 国产经典欧美精品| 精品一区二区在线视频| 日韩经典一区二区| 亚洲bt欧美bt精品777| 一级特黄大欧美久久久| 亚洲天堂a在线| 国产精品久久777777| 国产欧美精品在线观看| 久久亚洲精品小早川怜子| 欧美videos中文字幕| 欧美一区二区啪啪| 欧美一区二区女人| 制服丝袜成人动漫| 宅男在线国产精品| 91精品国产综合久久精品麻豆| 欧美私人免费视频| 欧美日韩小视频| 欧美色图片你懂的| 在线观看亚洲a| 欧美视频在线观看一区| 欧美艳星brazzers| 欧美在线观看一区二区| 欧美日精品一区视频| 欧美三级韩国三级日本三斤| 欧美这里有精品| 欧美日本国产视频| 6080日韩午夜伦伦午夜伦| 欧美酷刑日本凌虐凌虐| 777久久久精品| 日韩一级片在线播放| 日韩美女在线视频| 26uuu欧美| 中文字幕第一区第二区| 亚洲欧美在线视频| 亚洲一区二区三区四区的 | 一区二区三区在线观看动漫| 一区二区三区蜜桃网| 午夜视频在线观看一区二区 | 欧美日韩一区二区在线观看视频| 91成人免费网站| 欧美精品成人一区二区三区四区| 91麻豆精品国产91久久久久久久久 | 久久夜色精品国产欧美乱极品| 精品国产免费人成电影在线观看四季| 精品免费日韩av| 国产精品网站一区| 一区二区三区欧美视频| 日本aⅴ亚洲精品中文乱码| 激情五月激情综合网| 99视频有精品| 88在线观看91蜜桃国自产| 亚洲精品一区二区在线观看| 国产精品久久久久久妇女6080 | 国产欧美精品一区二区色综合| 国产精品美女久久久久久2018 | 亚洲免费视频中文字幕| 婷婷中文字幕一区三区| 国产在线精品不卡| 91亚洲精品乱码久久久久久蜜桃| 欧美视频在线一区二区三区 | 男女男精品视频| 国产成人高清在线| 欧美日韩国产三级| 久久久国产一区二区三区四区小说 | 成人免费精品视频| 欧美久久免费观看| 国产亚洲女人久久久久毛片| 一区二区三区在线高清| 国内欧美视频一区二区| 色婷婷亚洲精品| 精品国产伦一区二区三区观看方式| 国产精品精品国产色婷婷| 日本强好片久久久久久aaa| 成人综合婷婷国产精品久久| 欧美伦理电影网| 国产精品盗摄一区二区三区| 日本亚洲电影天堂| 91美女视频网站| 久久久久国产成人精品亚洲午夜| 亚洲一区在线观看网站| 国产精品66部| 欧美一区二区视频观看视频| 最新不卡av在线| 国产一区二区福利视频| 欧美日韩极品在线观看一区| 国产精品妹子av| 国产一区二区在线视频| 欧美日产在线观看| 国产精品电影一区二区| 国产美女在线观看一区| 在线不卡的av| 亚洲永久精品国产| 成人高清免费在线播放| 精品国产人成亚洲区|