1 service(服务):服务是没有界面的组件,运行在后台,服务是运行在当前应用程序的进程里
2,编写步骤:
1,写一个类继承service
2,重写onBind()方法
3, 在清单文件的下面声明service
3 应用场景:如果用耗时的操作,不想有界面,而且还不想程序退出就停止的逻辑,放在服务里
例如:消息的推送,定时的轮询
开启服务方法 startService(Intent intent); 关闭服务的方法 stopService(Intent intent); 绑定服务的方法 bindService() 绑定服务.
直接开启服务,不能调用服务里的方法,不可以与服务进行通信 绑定服务:可以简介调用服务里的方法,可以与服务进行通行.
4生命周期:
直接开启服务:onCreate() --> onstartcommand() ->onstart() -->onDestory()
绑定服务: 如果服务不存在:调用onCreate()-->onBind(),不会调用onStart()和onStartCommand()
5bind开启与start开启比较:
start:服务一旦开启,会长时间在后台运行,与开启不在有联系.开启后退出了,服务还是在运行的,而且不能调用服务里面的方法.
bind:服务开启了是和程序的声明周期绑定的,如果开启关闭了,服务也就关闭了.开启这可以间接调用服务里面的方法.
如果服务同时开启和绑定,那么服务就停不掉了,需要解除绑定才能停住服务
6,混合式开发要严格按照编写步骤:start--bind--unBind--stop
7,本地服务 :服务代码在程序内部:
远程服务:服务代码在另外的应用程序中
进程优先级:
前台进程>可视化进程>服务进程>后台进程>空进程