##建立一个服务类java
package com.tang.alipay; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.os.RemoteException; public class AplipayService extends Service { @Override public IBinder onBind(Intent intent) { System.out.println("alipay:onBind"); return new MyService(); } private class MyService extends IServiceInterface.Stub { public void callAlipayMethod(String name){ alipayMethod(name);//调用内部方法; } } @Override public boolean onUnbind(Intent intent) { System.out.println("alipay:onUnbind"); return super.onUnbind(intent); } @Override public void onCreate() { System.out.println("alipay:onCreate"); super.onCreate(); } @Override public void onDestroy() { System.out.println("alipay:onDestroy"); super.onDestroy(); } public void alipayMethod(String name) { System.out.println("支付宝中服务的方法"); } }
##配置清单文件android
<service android:name=".AplipayService"> <intent-filter > <action android:name="android.service.tang.alipay"/> </intent-filter> </service>
##抽取一个对外接口IServiceInterface写完后而后重命名成为.aidl文件app
重命名成.aidl后缀的时候编辑器会在gen目录下生成相应.java文件编辑器
package com.tang.alipay; interface IServiceInterface { void callAlipayMethod(String name); }
##在其余项目中调用这个服务方法ide
###把上面的aidl文件复制一份到项目src项目中;注意包名要和上面同样code
###调用服务接口
public void bindSer(View view) { Intent intent = new Intent(); intent.setAction("android.service.tang.alipay"); bindService(intent, new MyConn(), BIND_AUTO_CREATE); } private class MyConn implements ServiceConnection { @Override public void onServiceConnected(ComponentName name, IBinder ibinder) { is = IServiceInterface.Stub.asInterface(ibinder); } @Override public void onServiceDisconnected(ComponentName name) { } } public void callMethod(View view) { try { is.callAlipayMethod("haah"); } catch (RemoteException e) { e.printStackTrace(); } }