Service

一.service应用场景,以及和Thread区别

1.Service是什么

eg:在后台上时间运行操作而没有用户界面的应用组件

可以在后台上时间开启,程序退出的时候,Service进程保活

eg:service和广播都必须运行在主线程中

2.service和Thread区别

eg:Thread是程序运行的最小单位,相对独立,因此在执行一些耗时操作,就不会阻塞主线程

service是依托于线程中运行,耗时操作无法进行操作,如果一定要进行耗时操作,需要单独打开子线程

二.开启service的两种方式以及区别

1.startService

eg:onBind 返回null即可

onCreate 首次创建服务,一次性设置程序,在调用onStartCommand或onBind之前,如果服务已经在运行,则不会调用该方法,该方法只会调用一次

onStartCommand 每次通过startService启动Service都会被调用

onDestory 服务销毁

2.bindService

eg:

1)创建bindService服务端,继承自Serivce并在类中,创建一个实现Ibinder接口的实例对象,并提供公共方法给客户端调用

2)从onBind回调方法返回次Binder实例

3)在客户端中,从onServiceConnected回调方法接收Binder,并使用提供方法调用绑定服务

你可能感兴趣的:(Service)