一.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,并使用提供方法调用绑定服务