android 用aidl实现进程间的通信

来源:互联网 发布:网络作家跳舞 编辑:程序博客网 时间:2024/05/17 22:10

是一个应用:

public class sadanplay extends Service {@Overridepublic IBinder onBind(Intent intent) {System.out.println("onBind");return new myBinder();}   public class  myBinder extends ISmysadanplay.Stub{@Overridepublic void callsadanplay() {sadanplay();}            }@Overridepublic void onCreate() { System.out.println("_____------__---");super.onCreate();}public void sadanplay(){System.out.println("-------欢迎使用------");}@Overridepublic void onDestroy() {System.out.println("--------------onDestroy---------");super.onDestroy();}@Overridepublic boolean onUnbind(Intent intent) {return super.onUnbind(intent);}}

package com.example.paykalad;

 interface ISmysadanplay {
 void callsadanplay();
    
    
}
把这个方法的后缀名改成aidl

需要进行通信的程序2 

把上面的aidl文件复制到程序2中包名也要一样


public class MainActivity extends Activity {private Intent intent;private ISmysadanplay is;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intent=new Intent();intent.setAction("sadanplay");//程序1中定义的动作}public void bind(View view){bindService(intent, new myconn(), BIND_AUTO_CREATE);}  public class myconn implements ServiceConnection{@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {is=ISmysadanplay.Stub.asInterface(service);}@Overridepublic void onServiceDisconnected(ComponentName name) {}          }  public void play(View view){  try {is.callsadanplay();} catch (RemoteException e) {e.printStackTrace();}      }


0 0
原创粉丝点击