免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 991 | 回复: 1
打印 上一主题 下一主题

步入Service [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-18 20:53 |只看该作者 |倒序浏览

步入Service


一个Service是在后台运行并执行一些费时的操作的业务组件,它对用户而言是不可见的。它总是在背后默默的支持整个系统的运作而提供相关的功能。一个被启动的Service在程序退出时,该Service有可能仍保持运行的状态。 Service允许各进程之间进行通信(IPC)。

使用Service的用户可以采用两种形式来安排Service完成相应的任务。


1.使用Context.startService方法启动一个Service.一个被启动的Service,即使它的启动者被销毁该服务对象可能仍然运行在后台。该种服务适用于执行单任务且无需返回任何结果。一个被启动的Service必须在完成任务之后自行销毁(Context.stopService(..)),或者自行销毁(this.stopSelf()).
2.采用Context.bindService方法绑定一个Service.一个被绑定的Service通常提供给客户端一组相应的接口,如:发送消息,获取结果、以及在进程之间进行通信。多个组建能够同时绑定同一个Service组件,一个被绑定的Service一旦被所有其他应用程序组件取消绑定(Context.unbindService(..)),该Service的生命周期也随之结束。

Service组件能够同时提供给客户端这两种方式.一个启动的Service组件需要重写onStartCommand方法来完成相应的功能,而一个被绑定的Service则需要重写onBind方法。

Service在执行阶段并没有开辟一根新的线程,他仍然运行于主线程内,也就是说当一个Service需要连接网络或者做一些费时的操作时,就需要为它开辟一根新的线程来避免ANP(应用程序未响应),同样主线程能够与用户畅通的进行交互;

论坛徽章:
0
2 [报告]
发表于 2012-02-19 15:49 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP