详细博客https://www.cnblogs.com/codingblock/p/4842224.html
1.概念:service是长期服务于activity的后台服务
2.生命周期:(service的生命周期跟它的两种启动方式)
2.1:启动方式是 startService
Service的生命周期:onCreate() --> onStartcommand() -> onDestroy()
停止服务:stopService()
2.2:启动方式是 bindService
Service的生命周期 onCreate() --> onBind() --> onUnBind() --> onDestroy()
停止服务:UnbindService()再StopService()
区别:使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。而且使用bindService是可以操作和Service传递数据的
一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又bindService,Service只被创建一次。如果先是bind了,那么start的时候就直接运行Service的onStartcommand方法,如果先是start,那么bind的时候就直接运行onBind方法。
3.一个例子弄清Service的创建以及启动
因为android发展到现阶段,需要前端写本地service的项目越来越少,那么讲了那么多理论,下面我们通过具体代码来弄清楚Service的创建以及启动:
3.1:创建一个Service
3.1.1 继承Service,创建Service子类。
3.1.2 在AndroidManifest.xml文件中配置该Service。
下面创建一个最基本的Service组件:
MyService.java
public class MyService extends Service {
//必须实现的方法,用户返回Binder对象
@Override
public IBinder onBind(Intent intent) {
System.out.println("--onBind()--");
return null;
}
//创建Service时调用该方法&#x