android AIDL技術的簡單演示

  1. 創建服務端項目
  2. 創建客戶端項目
  3. 客戶端調用服務端中的方法

    一:創建服務端項目
    創建兩個文件
    TestAidl.aidl 與 AidlService.java
    這裏寫圖片描述

    TestAidl.aidl
    這裏寫圖片描述

AidlService.java
這裏寫圖片描述

到這服務端就OK了,注意其中的Stub是Aidl文件自動生動的。

二:創建客戶端項目
1.將服務端的aidl文件拿到客戶端並保持目錄名一樣
2.啓動服務,調用aidl
這裏寫圖片描述

AidlActivity.java

public class AIDLActivity extends AppCompatActivity {

    String TAG="AIDLActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_aidl);
    }

    public void testAidl(View view){
        AIDLActivity.this.bindService(new Intent("AIDL_SERVICE_TEST"), conn, BIND_AUTO_CREATE);
    }

    public void stopAidl(View view) {
        try{
        AIDLActivity.this.unbindService(conn);
        LogUtil.v(TAG, "stop");
        }catch (Exception e){
            Toast.makeText(this,"服務沒有啓動!",Toast.LENGTH_SHORT).show();
        }
    }
    protected ServiceConnection conn=new ServiceConnection(){
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            TestAidl aidl=TestAidl.Stub.asInterface(service);
            try {
                String message=aidl.sayFormOtherProcess();
                Toast.makeText(AIDLActivity.this,message,Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        /**
         * 連接異常時調用
         * @param name
         */
        @Override
        public void onServiceDisconnected(ComponentName name) {


        }
    };


}

到這裏就演示完了,當然,沒有講解,適合搞過aidl又忘得差不多的人看,小白請走大道

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章