Android Service Note --- Local Service Sample & Remote Messenger Service Sample

本文深入探讨了Android中本地服务(LocalService)与远程服务(RemoteMessengerService)的实现原理及客户端和服务端之间的交互过程。通过具体示例展示了如何使用Binder机制进行进程内通信以及Messenger进行跨进程通信。

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

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值