android 四大组件之service

上次说了下 Activity 的一些常识 ,这次  咱一起来看看 activity的 好哥们 service  ,同样是Android 四大组件之一;

 首先   说下  什么是service  ?

        简单的来说 service 就是 一种长期运行在后台,长生命周期 并且没有用户界面,不能够与用户进行交互,不能自己启动的 一种 服务  常用于执行后台 比较耗时的 操作  比如说  后台播放音乐,视频 等

那么 使用 它   需要 在项目清单中去注册 。 不知道大家注意了没  上次的Activity  也是 需要在项目清单中去注册,这次跟Activity 相同 , 其实  他们都是四大组件吗   是不是这样  ?后续 说完 四大组件 就知道了  值得思索哦

                        进入正题    一: Service   的 两种状态

  1:启动状态  :这种状态  主要用于 执行后台计算  

  2:绑定状态  :这种状态  可以做 一些 与Activity的交互  也可 通过 Acitvity 与用户间接交互。

                                          二: Service   的 两种启动方式

   1:startService()         本地服务:它可以启动并运行,直至有人停止了它或它自己停止。在这种方式下,它以调用Context.startService()启动,而以调用Context.stopService()结束。它可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。不论调用了多少次startService()方法,你只需要调用一次stopService()来停止服务。用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。

      它的生命周期

     启动  startService()  会走 OnCreate()  OnStart() 

如果服务以经开启, 再次调用 不会重新开启  而是 调用了OnStart()   

     关闭  stopService()   需要调用 OnDestroy()  进行关闭  如果不关闭会一直在后台运行

2: bindService();   远程服务:它可以通过自己定义并暴露出来的接口进行程序操作。客户端建立一个到服务对象的连接,并通过那个连接来调用服务。连接以调用Context.bindService()方法建立,以调用 Context.unbindService()关闭。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。

它的生命周期 :

     启动  onCreate()  onBind()  只能绑定一次 

     关闭  会直接调用 onUnbind()  onDestroy()   调用者与服务绑定在了一起,调用者一旦退出,服务也就终止




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值