安卓自学笔记

第一章:基础知识

第七节:认识Android Service

 

之前一直使用的A,它能够呈现一个用户界面,而当某些情况下,我们不需要一个能够交互的界面,只需要有在后台运行的代码,这就会使用到service。

用一个简单的例子来说明一下,现在有一个服务,它会在后台不断打印一条语句:Android Service!

首先创建service,只需要在源代码目录的地方右键新建一个service类型的java文件,会自动继承Service,并重写函数onStartCommand(),如图:

之后给启动页两个按钮用以启动服务和停止服务,并写上监听事件,如图:

当外界执行了startService()函数后,内部的onStartcommand()就会被执行。运行结果正确。

 

接下来是绑定服务的操作

继续在启动页添加两个按钮,用来绑定服务和解除绑定,同样也是用来启动服务。

两种启动的方法是有不同点的,通过start函数启动service后,调用者和service就没有联系了,不能去访问service里面的方法,而通过bind函数启动的service,调用者和service是共存亡的。

由于页面有四个按钮,需要写上四个监听函数,为了简化代码,可以让类实现View.OnClickListener接口

改写四个按钮的监听函数,如图:

改写服务类的onBind()函数,如图:

 

Android Service 生命周期

在Service类中补充onCreate和onDestroy两个方法来观察Service的生命周期,如图:

几点总结:

1.如果同时启动服务并且绑定了服务,那就必须同时执行解除绑定服务和停止服务才能停止掉服务

2.启动服务之后,通过后退键退出程序,不会停止服务

3.绑定服务之后,通过后退键退出当前的A时,服务会被取消绑定

4.重复执行启动服务的操作,onCreate函数只会先执行一次,onStartCommand会每次都执行一次

5.程序启动后如果需要执行一些初始化代码可以写在onCreate方法中,程序退出后需要执行的其他代码可以写在onDestroy方法中