Android四大组件之Service
1.Service是什么?
当后台需要监听某些程序,或者后天进行长时间的服务。或者后天开始进行操作长时间的业务,而页面可能被销毁。
和activity相识,但是service没有界面。
service前台,后台?
何为前台,就是有和用户交互的程序。
service怎么交互?通知栏。
所以。service的startForeground需要传入notification的东西。
默认service都在后台运行。
2.Service的生命周期。
生命周期是多进程系统的特色,尤其是前台后台的概念总是相识的。
而android系统同很多系统都是一样的,就是每个过程都是系统通知。
或者说就是框架设计。
android系统管理组件的各大框架,流程,而具体应用无需关心系统级的逻辑,页面切换,进程通信等问题。
那么先来看Service的生命周期吧:如图:
context.startService() ->onCreate()- >onStart()->Service running--调用context.stopService() ->onDestroy()
context.bindService()->onCreate()->onBind()->Service running--调用>onUnbind() -> onDestroy() 从上诉可以知道分别对应本地的,,
以及远程的,也对应不同的方式启动这个服务。
3.service的类型
本地服务和远程服务。
本地服务主要应用于程序内部,由context.startService() 启动。
远程服务一般供内部或者远程程序服务。由context.bindservice 启动。
区别:
1).本地服务,是client端启动的,但是启动以后,他们之间没有联系,service关闭,有它自己stopself。
2).远程服务是client通过AIDL的方式启动,bindservice,他们就是就有了联系。
AIDL可以通过代理的方式,使client端直接调用service的方法。
4.service如何与activity交互
本地服务,一般通过广播的方式传回service运行的结果。
远程服务,可以通过观察者的方式,返回结果。