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运行的结果。

远程服务,可以通过观察者的方式,返回结果。

posted on 2015-01-19 14:23  Joyfulmath  阅读(296)  评论(0编辑  收藏  举报

导航