文件分布:android aidl使用小例子

CompareService.aidl

packagecom.anlen.comparetoservice;interfaceCompareService{intCompareTo(intnum1,intnum2);}

CompareToService.java

packagecom.anlen.comparetoservice;importandroid.app.Service;importandroid.content.Intent;importandroid.os.IBinder;importandroid.os.RemoteException;publicclassCompareToServiceextendsService{@OverridepublicIBinderonBind(Intentintent){System.out.println("成功绑定服务");returnnewCompareIBinder();}@OverridepublicbooleanonUnbind(Intentintent){System.out.println("解除绑定服务");returnsuper.onUnbind(intent);}@OverridepublicvoidonCreate(){System.out.println("远程服务被创建");super.onCreate();}@OverridepublicvoidonDestroy(){System.out.println("远程服务被销毁");super.onDestroy();}/**CompareToService内部比较函数*/privateintcompareTo(intnum1,intnum2){returnnum1>num2?num1:num2;}//内部类实现接口并调用service内部方法,使外部类也能调用service内的方法privateclassCompareIBinderextendsCompareService.Stub{@OverridepublicintCompareTo(intnum1,intnum2)throwsRemoteException{returncompareTo(num1,num2);}}}

MainActivity.java

packagecom.anlen.experimentthree;importcom.anlen.comparetoservice.CompareService;importandroid.app.Activity;importandroid.content.ComponentName;importandroid.content.Intent;importandroid.content.ServiceConnection;importandroid.os.Bundle;importandroid.os.IBinder;importandroid.os.RemoteException;importandroid.view.View;importandroid.widget.EditText;publicclassMainActivityextendsActivity{Intentintent;EditTextnumberOne;EditTextnumberTwo;EditTextnumberLarge;privateCompareServicecompareService;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);numberOne=(EditText)findViewById(R.id.numberOne);numberTwo=(EditText)findViewById(R.id.numberTwo);numberLarge=(EditText)findViewById(R.id.numberlarge);/**为意图设定action**/intent=newIntent();intent.setAction("com.anlen.CompareToService");}publicvoidbinder(Viewview){bindService(intent,newConnectService(),BIND_AUTO_CREATE);}publicvoidcompareTo(Viewview){Stringnumberone=numberOne.getText().toString();Stringnumbertwo=numberTwo.getText().toString();intone=Integer.parseInt(numberone);inttwo=Integer.parseInt(numbertwo);intlarge=0;try{large=compareService.CompareTo(one,two);}catch(RemoteExceptione){e.printStackTrace();}numberLarge.setText(Integer.toString(large)+"比较大");}/**连接服务类**/privateclassConnectServiceimplementsServiceConnection{@OverridepublicvoidonServiceConnected(ComponentNamename,IBinderservice){//强制转化类型compareService=CompareService.Stub.asInterface(service);}@OverridepublicvoidonServiceDisconnected(ComponentNamename){compareService=null;}}}

布局xml

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"><EditTextandroid:id="@+id/numberOne"android:inputType="numberSigned"android:layout_width="match_parent"android:layout_height="wrap_content"android:text=""/><EditTextandroid:id="@+id/numberTwo"android:inputType="numberSigned"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/numberOne"android:text=""/><LinearLayoutandroid:id="@+id/linear"android:layout_below="@+id/numberTwo"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center"><Buttonandroid:id="@+id/binder"android:onClick="binder"android:layout_width="200dp"android:layout_height="50dp"android:text="@string/binderservice"/><Buttonandroid:id="@+id/compareTo"android:onClick="compareTo"android:layout_width="200dp"android:layout_height="50dp"android:text="@string/app_name"/></LinearLayout><EditTextandroid:id="@+id/numberlarge"android:inputType="numberSigned"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/linear"android:text=""/></RelativeLayout>

AndroidManifest.xml 服务添加

<serviceandroid:name="com.anlen.comparetoservice.CompareToService"><intent-filter><!--设定一个名字给外部进程调用该服务--><actionandroid:name="com.anlen.CompareToService"/></intent-filter></service>


更多相关文章

  1. Android学习札记36:一个关于onSaveInstanceState ()方法的例子
  2. Android调用系统的发邮件方法
  3. Android轮播图Banner使用方法
  4. Android ButterKnife框架的使用方法
  5. Android中几种图像特效处理方法小结
  6. android 笔记 --- Android界面刷新的方法

随机推荐

  1. android Activity之间传递对象
  2. MTK Android(安卓)Driver :battery
  3. Android短信----接收流程---框架层(Framew
  4. 改变Android(安卓)对话框位置及边框
  5. Android(安卓)--- 图片的特效处理
  6. 内存管理Memory Management in Android
  7. Android代码实现APK文件的安装与卸载
  8. 2010.12.26——— android 获得手机号码
  9. android下usb框架系列文章---(3)Storage
  10. ANDROID PAD版本 PHONE版本 源码有什么