service不是一个独立的进程,默认情况下运行在应用程序的主线程中。
启动服务后,按Home键,服务还会执行。
启动服务后,退出进程,服务不会执行。
启动服务,不用多线程,界面会阻塞。
Service的分类:
按照启动方式分类
一、Started
1、startService()来启动。
2、一旦启动,就运行在后台,即便启动它的对象都销毁了。
3、通常只启动,不返回值。
4、通常网络上传或下载,操作完成后,自动停止。
5、onStartCommand()
二、Bound
1、bindService()来启动
2、提供客户端服务器接口来启动
3、发送请求、得到返回值,甚至通过IPC来通讯
4、使用者绑定,只要一个绑定者,服务运行,所有绑定者都退出,服务退出。
5、onBind()
Service生命周期:
onCreate()
onDestory()
onStartCommand()
onBind()
Service只有在系统资源不足的时候才有可能被系统销毁。值得注意的是:Service如果正在bind状态,很少被销毁,如果服务运行在前台,几乎不会被销毁。
创建和使用Service步骤:
1、继承Service类实现自己的服务
2、在Mainifest.xml中注册服务
3、启动服务startService()
4、停止服务 stopService()、stopSelf()
绑定Service的步骤
1、继承Service类或者IntentService类实现自己的服务。
2、在Mainifest.xml中注册服务
3、绑定服务bindService()
4、取消绑定服务unbinService()