publicclassMainActivityextendsActivity{finalstaticStringTAG="MultiProcessTest";staticbooleaniscreated=false;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iscreated=true;Log.i(TAG,"on create() in MainActivity "+iscreated);startService(newIntent(this,MainService.class));}}publicclassMainServiceextendsService{StringTAG="MultiProcessTest";@OverridepublicvoidonCreate(){super.onCreate();Log.i(TAG,"MainService is onCreate");}@OverridepublicintonStartCommand(Intentintent,intflags,intstartId){Log.i(TAG,"MainActivity is created"+MainActivity.iscreated);returnSTART_STICKY;}@Nullable@OverridepublicIBinderonBind(Intentintent){returnnull;}}<activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter>
</activity><serviceandroid:name=".MainService"android:process=":MultiProcess"/>
Intentintent=newIntent(this,MainService.class);intent.putExtra(TAG,"I AM FROM MainActivity");startService(intent);Intentintent=newIntent(this,MainService.class);intent.putExtra(TAG,"I AM FROM MainActivity");startService(intent);@OverridepublicintonStartCommand(Intentintent,intflags,intstartId){Stringvalue=intent.getStringExtra(TAG);Log.i(TAG,"MainService is onStartCommand:"+value);returnSTART_STICKY;}08-1122:02:05.52219681-19681/com.android.multiprocess:mainServiceI/MultiProcessTest:MainServiceisonStartCommand:IAMFROMMainActivity
//MyAIDL.aidlpackagecom.android.multiprocess;//Declareanynon-defaulttypesherewithimportstatementsinterfaceMyAIDL{/**
* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/voidmultiprocessMethod()}publicclassAIDLRemoteServiceextendsService{privatestaticfinalStringTAG="AIDLRemoteService";privatefinalMyAIDL.StubmBinder=newMyAIDL.Stub(){@OverridepublicvoidmultiprocessMethod()throwsRemoteException{Log.d(TAG,"multiprocessMethod: "+"this is myAIDL");}};}<serviceandroid:name=".AIDLRemoteService"android:process=":remote"/>Intentintent2=newIntent(MainActivity.this,AIDLRemoteService.class);bindService(intent2,serviceConnection,Context.*BIND_AUTO_CREATE*);privateMyAIDLmyAIDL;privateServiceConnectionserviceConnection=newServiceConnection(){@OverridepublicvoidonServiceConnected(ComponentNamecomponentName,IBinderiBinder){Log.e(TAG,"onServiceConnected");myAIDL=MyAIDL.Stub.asInterface(iBinder);}@OverridepublicvoidonServiceDisconnected(ComponentNamecomponentName){Log.e(TAG,"onServiceDisconnected");myAIDL=null;}};