bindService

  李
    <>

    两种服务,,,,,,,本地服务:是和当前应用在同一个进程中的服务,彼此之间拥有共同的内存区域,所以对于某些数据的共享特别的方便和简单,,,
    ,,,,,,远程服务:因。为android的系统安全的原因导致了我们在不同的进程间无法使用一般的方式共享数据。在这里android为我们提供了一工具。(android接口描述语言)android接口描述语言。


    <李>

    服务生命周期

    ——startService/stopService,,
    ,,,,,,startService(目的意图):启动一个服务,,
    ,,,,,,stopService(目的意图):停止一个服务,,

    (2)绑定/解绑定方式——bindService/unBindService
    ,,,,,,,如果我们想使用,那么我们就要通过下面的方法:,,
    ,,,,,,,公共布尔bindService(目的意图,ServiceConnection康涅狄格州,int旗帜),,,
    ,,,,,,,公共空间unbindService(康涅狄格州ServiceConnection);

    ,,
    ,,,,,,,或方法。如果我们想要访问服务中的数据,可以在onServiceConnected()方法中进行实现,,


    ,

    <李>

    使用服务的步骤

    <强>(1)继承服务类,实现自己的服务。,,
    ,,,,,,,如果想要访问服务中的某些值,我们通常会在服务类中再提供一个。这里实际上巧妙的利用了内部类能够访问外部类属性的特点。,,
    <强>(2)在androidManifest。xml中进行注册,如:,,
    ,,,,,,,& lt; !——服务配置开始——比;,,
    ,,,,,,,& lt;服务android: name=癕yService祝辞& lt;/service>,,
    ,,,,,,,& lt; !——服务配置结束——比;,,
    <强>(3)在活动中进行启动,绑定,解绑或者停止服务。,,
    ,,,,,,,启动/停止(startService/stopService)方式比较简单、下面列出一个活动绑定/解绑(bindService/unbindService)服务并使用服务中数据的例子。


    <李>

    bindService的使用介绍

    (1)服务通过Context.startService()方法开始,通过Context.stopService()方法停止;也可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己。

    (2)客户端建立一个与服务的连接,并使用此连接与服务进行通话,

    (3)上面startService()和bindService()两种模式是完全独立的。你可以绑定一个已经通过startService()方法启动的服务,例如:



    <李>

    服务绑定流程

    context.bindService (),——比;onCreate (),——比;onBind (),——比;   服务running ——比;onUnbind (),——比;onDestroy (),——比;服务   停止

    (1) onBind()将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到服务的实   例,运行状态或其他操作。这个时候把调用者(上下文,例如活动)会和服务绑定在一起,上下文退出   了,私营化程度就会调用onUnbind→onDestroy相应退出。

    (2)所以调用bindService的生命周期为:onCreate——比;onBind(只一次,不可多次绑定)——比;onUnbind——比;onDestory .

    (3)在服务每一次的开启关闭过程中,其他onCreate, onBind, onUnbind, onDestory在一个生命周期中只能被调用一次。

    (4)这个问题当调用bindService方法后就会回调活动的onServiceConnected,在这个方法中会向活动中传递一个内部的实例,Acitity需要保存这个实例。在服务中需要创建一个实现内部的内部类(这个内部类不一定在服务中实现,但必须在服务中创建它)。在onBind()方法中需返回一个内部实例,不然onServiceConnected方法不会调用。

bindService