Android基础:Service —— 默默为你服务
Service有两种启动方式,分别为 context.startService() 和 context.bindService() 。这里要提到Service的生命周期,两种不同的启动方式有不同的生命周期:
Tips:
首先创建自己的Service类,重写其生命周期,并在mainfest.xml中进行注册。
必须注册Service,不然不会调用。简单注册:
补充下Service在manifest中的属性以及作用:
接下来,我们就可以用下面的两个方法来启动和停止服务。
首先在我们的Activity中创建Service连接对象,重写连接和断开的方法。创建自定义的Binder对象,在 onServiceConnected() 中赋值然后可以调用自定义Binder中的方法。使用下方的bind()方法来绑定服务,使用 unBind() 来解绑服务。
这里会用到Service的 onBind() 和 onUnbind() 的生命周期,我们在TestService中重写之。这里要注意的是,使用bindService()方法启动的Service,不会调用 onStartCommand() 的生命周期。此外,创建自定义Binder类和对象。
这样,当我们使用Activity中的bind()方法来绑定服务,会自动启动服务,而我们又重写了 onServiceConnected() 方法并使用myBinder来调用方法。这样我们就可以用它来Activity和Service来进行通信。
特别Tips:
如果先使用 startService() 来开启服务和 bindService() 来绑定服务,当使用 unbindService() 解绑时,Service并不会被销毁。而是使用 stopService() 才能销毁服务。
前台服务和后台服务的区别:
在Service中进行操作,将服务类型以前台的方式运行显示在通知栏。
运行效果:
暂时引用吧,有空再实现一个:
参考资料: