【安卓面试笔记】Service(四)
2015-10-21 22:51
543 查看
1.Service的特点:
在android中,Service本身和Activity没有太大的区别,主要在于一个可见,一个不可见。Service属于后者。同时Service和其他主件有着许多相同的地方:需要注册,需要在主线程中等等。在主线程中就意味着不能进行耗时操作,例如网络耗时操作。解决办法和Activity一样,开一个子线程去进行耗时操作。
服务一般分为两种:
1:本地服务, Local Service 用于应用程序内部。在Service可以调用Context.startService()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stopService()来停止。
2:远程服务, Remote Service 用于android系统内部的应用程序之间。可以定义接口并把接口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,并通过那个连接来调用服务。调用Context.bindService()方法建立连接,并启动,以调用 Context.unbindService()关闭连接。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。
提供给可被其他应用复用,比如定义一个天气预报服务,提供与其他应用调用即可。
Service的生命周期吧:如图:
从图中我们注意到两者的区别:
OnBind 和 OnStart
Bind是约束,绑定的意思,这里的理解是绑定的服务。
在android中,Service本身和Activity没有太大的区别,主要在于一个可见,一个不可见。Service属于后者。同时Service和其他主件有着许多相同的地方:需要注册,需要在主线程中等等。在主线程中就意味着不能进行耗时操作,例如网络耗时操作。解决办法和Activity一样,开一个子线程去进行耗时操作。
服务一般分为两种:
1:本地服务, Local Service 用于应用程序内部。在Service可以调用Context.startService()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stopService()来停止。
2:远程服务, Remote Service 用于android系统内部的应用程序之间。可以定义接口并把接口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,并通过那个连接来调用服务。调用Context.bindService()方法建立连接,并启动,以调用 Context.unbindService()关闭连接。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。
提供给可被其他应用复用,比如定义一个天气预报服务,提供与其他应用调用即可。
Service的生命周期吧:如图:
从图中我们注意到两者的区别:
OnBind 和 OnStart
Bind是约束,绑定的意思,这里的理解是绑定的服务。
相关文章推荐
- 黑马程序员--反射
- 黑马程序员--多线程
- 【安卓面试笔记】Handler(三)
- 黑马程序员--IO(下)
- 黑马程序员——字符串
- 黑马程序员--IO(上)
- 黑马程序员--集合(下)
- 71道安卓面试题
- 黑马程序员--集合(上)
- 安卓面试题
- 面试题1:一个人岁数的3次方是四位数,四次方是六位数,并知道此人岁数的3次方和4次方用遍了0--9十个数字,请编程写程序求此人的岁数
- 黑马程序员--面向对象(下)
- 优秀程序员的十大习惯
- 黑马程序员--面向对象(上)
- 黑马程序员--Java基础
- 程序员技术练级攻略
- Java程序员从笨鸟到菜鸟之(一百零八)一步一步学习webservice(二)webservice基本原理
- 黑马程序员——基础知识-反射机制
- 程序员,你敢休息一下吗?——真爱生命,远离编程
- Java程序员从笨鸟到菜鸟之(二)面向对象之封装,继承,多态(上)