您的位置:首页 > 移动开发 > Android开发

Android与服务进程内通信

2012-08-02 10:47 260 查看
电话录音服务只是内部进行录音以及调用PhoneManager对象。许多时候服务在处理业务后需要和其它程序进行通信。.startService()和stopService()适用于调用者和服务者之间没有交互的情况,否则应该适用bindSerivce()和unbindService()方法

调用bindService()方法时:

1. 服务若没有创建

s.onCreate()--às.onBind()-à服务于访问者绑定在一起

如果访问者退出:

s.onUnBind()às.onDestroy();

2.服务已经创建

不会导致调用多次服务的创建(onCreate()和绑定(onBind()),如若解除绑定可调用unbindService()方法,系统同样会调用服务的onUnbind()-àonDestory()方法。

onBind()只有调用bindService()方法才会触发方法的调用,如果服务已经被绑定,该方法不会执行多次

onUnbind()方法只有调用unbindService()方法才会导致该方法的执行。

电话录音服务只是在服务内部进行录音以及调用PhoneManager对象,许多时候服务在处理业务后,需要和其它程序进行通信.startService()和stopservice()使用使用者和服务之间没有交互的情况,否则应该使用bindService()和unbindService()方法。

调用bindService()方法时:

1. 服务若没有创建

s.onCreate()-às.onBind()-à服务于访问者绑定在一起。

如果访问者退出:

s.onUnBind()-às.onDestroy();

2.服务已经创建

不会导致调用多次服务的创建(onCreate())和绑定(onBind()),如果解除绑定可调用unbindService()方法,系统同样会调用服务的onUnbind()-àonDestroy()方法。

onBind()只有调用bindService()方法才会触发该方法的调用。如果服务已经被绑定,该方法不会被执行多次。

onUnbind()方法只有调用unbindService()方法才会导致该方法的执行。

客户端和服务通过Ibinder对象联系在一起。bindService()方法调用时,需要Intent,ServiceConnection和flag参数,其中serviceConnection对象用于接收服务onBind()方法,返回的Ibinder对象,并且该对象会传入到第二个参数serviceConnection对应的方法中,触发方法的回调,总而言之,使用客户端持有到达service对象的引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: