欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android AIDL實現(xiàn)跨進程通信的示例代碼

 更新時間:2017年08月30日 08:53:58   作者:xybCoder博客  
本篇文章主要介紹了Android AIDL實現(xiàn)跨進程通信的示例代碼,具有一定的參考價值,有興趣的可以了解一下

AIDL是Android接口定義語言,它可以用于讓某個Service與多個應用程序組件之間進行跨進程通信,從而可以實現(xiàn)多個應用程序共享同一個Service的功能。

實現(xiàn)步驟

例:用 A程序去訪問 B程序的MyService.java服務

  1. 在B中建立AIDL文件MyAidlService.AIDL,在AIDL文件里寫我們的接口方法
  2. 在MyService中寫AIDL文件定義的方法的具體服務邏輯
  3. 在B的manifest文件中,為Service添加action “com.xyb.servicetest.MyAidlService” 用于A靜態(tài)來訪問Service(這里是因為,如果用動態(tài)Intent (this, MyService.class), 在A中沒有MyService這個類)
  4. 把B的AIDL文件夾拷貝到A中,一定要注意包的路徑依然為B中的路徑
  5. 在A中利用靜態(tài)Intent來啟動B的服務MyService

對應步驟詳細代碼:

MyAidlService.AIDL

interface MyAidlService { 
  int add(int a, int b); 
}

MyService.Java

public class MyService extends Service{ 
 
  MyAidlService.Stub mBinder = new MyAidlService.Stub() { 
    @Override 
    public int add(int a, int b) throws RemoteException { 
      return a + b; 
    } 
  }; 
 
  @Override 
  public IBinder onBind(Intent intent) { 
    return mBinder; 
  } 
 
  @Override 
  public void onCreate() { 
    super.onCreate(); 
  } 
 
  @Override 
  public void onDestroy() { 
    super.onDestroy(); 
  } 
 
  @Override 
  public int onStartCommand(Intent intent, int flags, int startId) { 
    return super.onStartCommand(intent, flags, startId); 
  } 
 
 
}

3.添加action

<service android:name=".MyService"> 
      <intent-filter> 
        <action android:name="com.xyb.servicetest.MyAidlService"/> 
      </intent-filter> 
    </service>

4.拷貝AIDL文件夾

5.A訪問B的服務

Intent intent = new Intent("com.xyb.servicetest.MyAidlService"); 
        bindService(intent, connection, BIND_AUTO_CREATE);
private MyAidlService aidlService;
private ServiceConnection connection = new ServiceConnection() { 
  @Override 
  public void onServiceConnected(ComponentName name, IBinder service) { 
    Log.d("onServiceConnected", "onServiceConnected"); 
    aidlService = (MyAidlService) MyAidlService.Stub.asInterface(service); 
    try { 
      int sum = aidlService.add(10, 50);//對10和50相加 
      Log.d("onServiceConnected", sum + ""); 
    } catch (RemoteException e) { 
      e.printStackTrace(); 
    } 
  } 
 
 
  @Override 
  public void onServiceDisconnected(ComponentName name) { 
 
 
  } 
};

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • VerticalBannerView仿淘寶頭條實現(xiàn)垂直輪播廣告

    VerticalBannerView仿淘寶頭條實現(xiàn)垂直輪播廣告

    這篇文章主要為大家詳細介紹了VerticalBannerView仿淘寶頭條實現(xiàn)垂直輪播廣告,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Android RecyclerView實現(xiàn)下拉刷新和上拉加載

    Android RecyclerView實現(xiàn)下拉刷新和上拉加載

    這篇文章主要介紹了Android RecyclerView實現(xiàn)下拉刷新和上拉加載的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android ProductFlavor的使用詳解

    Android ProductFlavor的使用詳解

    如果你的項目需要要區(qū)分國內(nèi)版和國外版甚至還要根據(jù)用戶是否是VIP會員加上收費和免費的版本,我們可以使用ProductFlavor對UI布局和icon圖標進行版本區(qū)分,有此類需求的朋友,不妨了解下本文
    2021-06-06
  • java從輸入流中獲取數(shù)據(jù)并返回字節(jié)數(shù)組示例

    java從輸入流中獲取數(shù)據(jù)并返回字節(jié)數(shù)組示例

    這篇文章主要介紹了java從輸入流中獲取數(shù)據(jù)并以字節(jié)數(shù)組返回,這是一個常用的方法,以后可以直接拿來用。這種輸入流可以來自Android本地,也可以來自網(wǎng)絡
    2014-01-01
  • android基礎教程之開機啟動示例

    android基礎教程之開機啟動示例

    這篇文章主要介紹了android開機啟動示例,開機自動啟動程序后開機啟動廣播功能實現(xiàn),需要的朋友可以參考下
    2014-02-02
  • Android自定義UI手勢密碼簡單版

    Android自定義UI手勢密碼簡單版

    這篇文章主要為大家詳細介紹了Android自定義UI手勢密碼簡單版
    2016-10-10
  • Android音視頻開發(fā)之MediaPlayer使用教程

    Android音視頻開發(fā)之MediaPlayer使用教程

    Android多媒體框架支持播放提供了MediaPlayerAPI,可以通過MediaPlayer來實現(xiàn)媒體文件播放。可以說MediaPlayer是非常方便使用的多媒體播放器。本文將詳細講解MediaPlayer的使用,需要的可以參考一下
    2022-04-04
  • 詳解Android應用沙盒機制

    詳解Android應用沙盒機制

    這篇文章主要介紹了Android應用沙盒機制的相關資料,幫助大家更好的理解和學習使用Android開發(fā),感興趣的朋友可以了解下
    2021-04-04
  • android仿直播圓點加載效果

    android仿直播圓點加載效果

    這篇文章主要為大家詳細介紹了android仿直播圓點加載效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • gradle配置國內(nèi)鏡像的實現(xiàn)

    gradle配置國內(nèi)鏡像的實現(xiàn)

    這篇文章主要介紹了gradle配置國內(nèi)鏡像的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09

最新評論