代码改变世界

Service的使用

2015-07-15 16:38  himanxu  阅读(145)  评论(0编辑  收藏  举报

Service的使用

使用Service服务需要在Manifest.xml文件中声明

<service android:name = "com.himanmin.xu.servicedemo.TimeService">
            <intent-filter>
                <action android:name="action"/>
            </intent-filter>
        </service>

在启用service时,根据Service是否需要需要与其他进程进行数据交互,启用方式不同。前者只需service在后台运行,后者可能需要得到service的数据反馈。

无数据交互的service,可以通过startService(intent)和stopService(intent)启动和关闭,而intent则通过

intent.setAction("action"),action需与Manifest.xml文件中的声明一致。

这种情况下service的生命周期为:

onCreate()->onStartCommand()->onDestroy()

 

需要数据交互的service,需要将service与反馈对象进行绑定。常见的,主进程开启一个service服务,然后将结果返回到主进程所在的Activity中。绑定和解除绑定分别使用bindService()和unBindService(),其中bindService()会绑定service或启动相应的service并绑定,目标service通过设置intent确定。在service类中,复写onBind()方法,并返回自定义的IBinder实例,该实例一般含有返回service实例的方法。在主进程的activity中,则需要创建ServiceConnection对象,获取返回的IBinder实例,并进而获取service,进行service自定义功能的数据操作。

这个过程的生命周期

onCerate()未创建->onBind()->onUnBind()->onDestroy()