startService与 bindService 的区别


一.生命周期不同,销毁方式不同
1.startService
onCreate->onStartCommand
通过调用stopService 停止服务,否则一直后台运行
->onDestroy()
2.bindService
onCreate->onBind
调用者调用unbindService方法或者调用者Context不存在了(如Activity被finish了),
-> onUnbind->onDestroy
二、创建方式不同
如果是跨进程 bindService 需要创建aidl文件

二、既使用startService又使用bindService的情况
比如 voiceservice,tspservice等。需要先启动服务再绑定服务,这样客户端既可以和服务器通信,且客户端销毁不影响服务端。

posted @ 2020-07-03 11:07  adam.li  阅读(1715)  评论(0编辑  收藏  举报