服务是一个后台运行的组件,执行长时间运行且不需要用户交互的任务。应用被销毁时也依然可以工作
服务的两种状态:
started:通过startServer()启动的服务,一旦启动,服务可以在后台一直运行bound:通过bindServer()绑定的服务,Bound状态的服务,提供了一个客户服务器接口来允许组件与服务进行交互,如发送请求,获得结果,甚至可以通过IPC来进行跨进程通信创建一个服务需要继承Service类
介绍Service类的回调方法
onStartCommand() 其他组件(如活动)通过调用startService()来请求启动服务时,系统调用该方法。如果你实现该方法,你有责任在工作完成时通过stopSelf()或者stopService()方法来停止服务。onBind() 当其他组件想要通过bindService()来绑定服务时,系统调用该方法。如果你实现该方法,你需要返回IBinder对象来提供一个接口,以便客户来与服务通信。你必须实现该方法,如果你不允许绑定,则直接返回null。onUnbind() 当客户中断所有服务发布的特殊接口时,系统调用该方法。 -> onRebind() 当新的客户端与服务连接,且此前它已经通过onUnbind(Intent)通知断开连接时,系统调用该方法。onCreate() 当服务通过onStartCommand()和onBind()被第一次创建的时候,系统调用该方法。该调用要求执行一次性安装。onDestroy() 当服务不再有用或者被销毁时,系统调用该方法。你的服务需要实现该方法来清理任何资源,如线程,已注册的监听器,接收器等。