1.Local Service Sample
我在其中的关键步骤加上了打印信息,根据这些log我们可以更好的理解Service和Client是如何联系上的
AndroidManifest.xml
LocalService.java
通过LocalBinder类,Client可以通过 在 onServiceConnected 方法 获得Service对象
LocalServiceActivities.java
mBoundService = ((LocalService.LocalBinder)service).getService();
通过 bindService(new Intent("com.fly.localservice"), mConnection,Context.BIND_AUTO_CREATE);
可以将两者联系上
测试结果:
上面我们只是看清了整个大体流程,并没有在Service中做些什么,
So 我们可以用另外一个Activity通过 startService 和 stopService 来 启动 和关闭 Service
让我们更加主动和智能一些,:-)
点击startService, 开启服务,点击stopService,关闭服务
2.RemoteMessengerServiceSample
Service 和 Client 还可以通过handleMessage 互相发送消息
AndroidManifest.xml
添加 android:process=":remote" 可以让服务在远程进程中运行
MessengerService.java
MyActivity.java
本文深入探讨了Android中本地服务(LocalService)与远程服务(RemoteMessengerService)的实现原理及客户端和服务端之间的交互过程。通过具体示例展示了如何使用Binder机制进行进程内通信以及Messenger进行跨进程通信。
5万+





