博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android五大基本组件之一-----Service篇
阅读量:5782 次
发布时间:2019-06-18

本文共 1153 字,大约阅读时间需要 3 分钟。

把service的一些特性总结一下,基本知识就不介绍了.

1、主要在后台运行。

2、分两种类型:

     remote和location(远程和本地)

     区别:远程的可以用在不同进程间访问,通过aidl实现(aidl以后介绍),当访问的进程结束掉后,还可以在后台继续进行。

              本地的是在同一个进程间访问,当访问的进程结束后一起关掉。

3、打开service的方法有两种:

     一种:直接打开法:

              通过startservice(Intent)这个方法打开,与之对应的是stopservice(Intent)这个方法关闭。

      二种:通过bind的方法:

              通过bindservice这个方法打开连接上service,与之对应该的是unbindservice这个方法断掉连接并关闭service.

     需要注意的是:

     (1)第一种方法只能打开service让它先运行起来,如果其它应用要使用他必须得bindService(Intent,ServiceConnection,int),然后再生成一个service的对象,就可以引用这个service对象里的方法了。

     (2)如果用第一种方法打开,必须用stopservice关闭service,如果末调用stopservice,本地service有的时候应用程序虽然已经退出了,但是这个进程还末被系统回收,service还会运行,远程也需要自己关。

     (3)如果第一种方法打开,每个应用想bind这个service时,需要掉用bindservice,如果不想连接了就只需要掉用 unbindservice,这个只是断开与service的连接,而service还在后台运行,此时过程中service在startservice 时调用oncreate()-->onstart(),在stopservice时调用onDestroy().

     (4)如果service在bind之前末打开service,应用可以通过bindservice这个方法先打开service再连接service, 这就是上面说的第二种打开方法,这种方法在调用unbindservice时不但会断掉连接还会关闭service,此时过程中service在 bindservice时调用oncreate()-->onbind(),在unbindservice时调用 onunbind()--->onDestroy().

建议:

     当有多处应用要访问一个远程的service时,可以先启动service在后台运行,然后在每一个应用中bind这个service,这样的话很方便,而且在应用程序中打开service也会快一点。

转自:http://blog.csdn.net/wenhaiyan/article/details/5336286

你可能感兴趣的文章
编译安装LNMP
查看>>
[转]基于display:table的CSS布局
查看>>
crm 02--->讲师页面及逻辑
查看>>
AS3.0 Bitmap类实现图片3D旋转效果
查看>>
Eigen ,MKL和 matlab 矩阵乘法速度比较
查看>>
带三角的面包屑导航栏(新增递增数字)
查看>>
Web应用程序安全与风险
查看>>
codeforces 984 A. Game
查看>>
CSS居中
查看>>
One Person Game(概率+数学)
查看>>
CodeForces 258B Little Elephant and Elections :于1-m中找出七个数,使六个数里面的4和7个数比第七个数严格小:数位dp+dfs...
查看>>
MAP
查看>>
手把手教你测——上网快鸟
查看>>
用javascript获取地址栏参数
查看>>
一起谈.NET技术,你应该知道的15个Silverlight诀窍
查看>>
商教助手!解析夏普液晶高清宽屏投影机系列
查看>>
云南去年有望实现151万贫困人口净脱贫
查看>>
Java架构师面试题系列整理(大全)
查看>>
延伸产业链 中国产粮大省向“精深”问发展
查看>>
消费贷用户70%月收入低于5000元 80、90后是主要人群
查看>>