众所周知,Service是Android中实现程序后台运行的解决方案,非常适合于执行不需要和用户交互而且要求长期运行的任务。Notification是显示在手机状态栏的通知,通过Notification和startForeground可以将Service后台服务设置为前台服务。
一. Service的分类
按种类分为LocalService和RemoteService
LocalService:当前进程的Service,依附在主进程上,节约资源,通信不需要进程间通信,但主进程被杀掉时LocalService也会被停止。一般可以做播放操作。
RemoteService:远程进程的Service,是一个独立的进程,当主进程被杀掉时,其服务依然会运行,比较灵活,但使用复杂。可以做一些系统常驻进程或守护进程(当主进程被杀掉时,可以用守护进程唤醒主进程)。
按类型分为前台Service和后台Service
前台Service:在通知栏一直显示的服务,最大程度保证服务不被杀掉。
后台Service:默认的服务为后台服务,看不见。
前台Service的优先级高于后台Service。
启动方式有startService和bindService
startService:onCreate只会在Service第一次创建的时候被调用,start一次之后,下次不会再onCreate了,每次会执行onStartCommand。
bindService:Service中的onBind是与外界进行关联的。onBind返回的IBinder都会在与其他组件连接时返回,即IBinder是一个负责