日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > IPC之AIDL(2)in out inout

IPC之AIDL(2)in out inout

來源:程序員人生   發(fā)布時間:2016-11-24 09:00:18 閱讀次數(shù):2859次

內(nèi)容大綱:

1.在AIDL的時候正確使用in out inout

上1篇我們用AIDL簡單實現(xiàn)了1個IPC,其中我們談到在定義aidl接口中的除基本類型和AIDL接口外的參數(shù)要調(diào)價修飾符in out 或 inout中的1種,本文將幫助大家理解in out inout,并讓讀者可以正確的使用in out inout。
在介紹in out inout的區(qū)分之前我們先明確兩個基本概念:出發(fā)點 和 終點,出發(fā)點指調(diào)用方,終點指響應(yīng)方,比如我在客戶端調(diào)用aidl接口那末客戶端就是出發(fā)點 服務(wù)端就是重點,在1次調(diào)用中服務(wù)端如果要調(diào)用1個aidl接口回調(diào)給客戶端,那末服務(wù)端就是出發(fā)點,客戶端就是重點。
然后我們來定義in out inout:
in : 將對象從出發(fā)點傳遞給終點,在終點部份中對對象的修改不會反應(yīng)到出發(fā)點,即只輸入
out : 對象中的值不會傳遞給終點,但是在終點部份對對象的修改會反應(yīng)到出發(fā)點,即只輸出
intout : 將對象從出發(fā)點傳遞給終點,在終點部份的修改會反應(yīng)到出發(fā)點,即輸入輸出都有影響

我們再用1個具體的例子來看1下這個辨別:
我們來看下客戶真?zhèn)€代碼:

        mServiceConnection = new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                mBookManager = IBookManager.Stub.asInterface(service);
                try {
                    mBookManager.registerListener(new IBookListener.Stub() {
                        @Override
                        public void onBookAdd(Book book) throws RemoteException {
                            Log.i("wlh " , "addBook callback : " + book.name);
                        }
                    });
                    Book book = new Book();
                    book.name = "TestBook";
                    mBookManager.addBook(book);
                    Log.i("wlh",  book.name);
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
                unbindService(mServiceConnection);
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {

            }
        };

我們輸出了callback 調(diào)用addBook 和調(diào)用后book對象的名稱。我們再來看下服務(wù)真?zhèn)€代碼:


    private IBinder mBinder = new IBookManager.Stub() {
        @Override
        public List getBookList() throws RemoteException {
            Log.i("wlh", "getBookList");
            return null;
        }



        @Override
        public void addBook(Book book) throws RemoteException {
            Log.i("wlh", "addBook : " + book.name);
            int N = mCallbacks.beginBroadcast();
            book.name += " : server";
            for (int i = 0; i 《 N; i++ ) {
                mCallbacks.getBroadcastItem(i).onBookAdd(book);
            }
            mCallbacks.finishBroadcast();

        }


        @Override
        public void registerListener(IBookListener listener) throws RemoteException {
            mCallbacks.register(listener);
        }

        @Override
        public void unRegisterListener(IBookListener listener) throws RemoteException {
            mCallbacks.unregister(listener);
        }
    };
    

視察addBook方法 我們在客戶端傳過來的book中修改了name字段 追加了1個:server,然后我們輸出了客戶端傳遞過來的book名稱。現(xiàn)在我們來看在book的修飾符分別為in out 和inout時候的系統(tǒng)輸出。(我們假定BookListener中的參數(shù)都是in,其實BookListener中的in out inout修飾就是出發(fā)點 和 終點的轉(zhuǎn)換,這個時候出發(fā)點是調(diào)用方服務(wù)端 終點是響應(yīng)方客戶端,具體的讀者可自行分析)

in:
我們可以先猜想1下輸出,in表示數(shù)據(jù)會傳遞到終點,那末服務(wù)端會輸出TestBook,然后由于對對象的修改不會反應(yīng)到出發(fā)點,所以對象不會反應(yīng)到客戶端,客戶端仍然輸出的是TestBook,而callback中的回調(diào)是TestBook : server,我們來看下實際效果:

out:
out不會將數(shù)據(jù)傳遞到終點在這里也就是服務(wù)端,那末服務(wù)端會輸出null, 然后由于對象修改會反應(yīng)到出發(fā)點也就是客戶端,所以客戶端會輸出 null : server,我們來看下實際效果:

inout:
inout即會把數(shù)據(jù)傳遞到終點,出發(fā)點也會響應(yīng)終點的變化,那末服務(wù)端會輸出 TestBook
然后客戶端輸出 TestBook : server, 我們來看下實際效果:

歡迎關(guān)注公眾號:CoderHouse
這里寫圖片描述

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 99视频这里有精品 | 97超碰网 | 国产成人高清 | 夜夜操天天干 | 中文字幕日韩一区二区三区不卡 | 欧美黄色大片在线观看 | 久久精品99国产精品酒店日本 | 成人深夜视频 | 成人亚洲区 | 黄色小视频在线免费观看 | 久久国产精品无码网站 | 偷拍亚洲| 中文字幕亚洲综合久久久软件 | 中文字幕在线一区 | 亚洲最新在线视频 | 久久久精彩视频 | 国产视频二区在线 | 综合久久一区 | 久久久久国产精品免费免费搜索 | 日韩一区不卡 | 91精品国产综合久久男男 | 国产精品久久久久久亚洲调教 | 免费成人黄色 | 麻豆精品国产 | 欧美另类视频 | 日本xxxx裸体xxxx | 久久日韩精品 | 狠狠色综合欧美激情 | 中文天堂网 | 韩日一区二区 | 国产精品乱码一区二区三区 | 亚洲国产精品久久久久婷婷老年 | 嫩草影院91 | 在线免费看污 | 亚洲精品电影在线 | 黄色片在线播放 | 日韩免费在线电影 | 一级黄色免费视频 | 国产a自拍 | 在线性视频 | 久久亚洲综合国产精品99麻豆精品福利 |