android中服务是运行在后台的东西,级别与activity差不多。既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西。你可以启动一个服务Service来播放音乐,或者记录你地理信息位置的改变,或者启动一个服务来运行并一直监听某种动作。
重点在于理解Service的生命周期,启动,绑定,处理连接(正常连接or异常连接,重载ServiceConnection的OnServiceConnected和OnServiceDisconnected),停止。
对于不同的方式(startService和bindService)启动Service有不同的生命周期。
context.startService() ->onCreate()- >onStart()->Service running--调用context.stopService() ->onDestroy()
context.bindService()->onCreate()->onBind()->Service running--调用>onUnbind() -> onDestroy()
直接使用Service有两个不足:
不专门启动一条单独线程,与应用程序在同一线程中;
不是一个新线程,不应该处理耗时的操作。
由此引出了IntentService,继承自Service,
会创建单独的worker线程处理intent请求;
会创建单独的worker线程处理OnHandleIntent()方法实现代码