当前位置:操作系统 > 安卓/Android >>

Android与服务进程内通信

电话录音服务只是内部进行录音以及调用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()方法。www.zzzyk.com

 

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

 

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

 

客户端和服务通过Ibinder对象联系在一起。bindService()方法调用时,需要Intent,ServiceConnection和flag参数,其中serviceConnection对象用于接收服务onBind()方法,返回的Ibinder对象,并且该对象会传入到第二个参数serviceConnection对应的方法中,触发方法的回调,总而言之,使用客户端持有到达service对象的引用。

 

 


作者:toto1297488504
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,