android四大组件之一Service

android四大组件之一Service:

service 是android的核心组件之一,不需要由用户去创建,有Android系统管理和维护。

所有的自定义Service都不许继承Service类,并且在Androidfest.xml中生命它

service是没有界面的适合在后台默默执行的生命周期长,虽然service是适合长期执行的,但是它还是运行在主程序中因此好事的功能应该写到分支线程中。

service的激活方式:

1)使用startServicer进行激活

使用startService(Intent)激活Service经历的生命周期为

1.onCreate()--->onStartCommand()---->onDestory()

可以反复的调用startService()激活同一个Service,但是service只能创建1次,后面会反复经历onStartCommand(),可以使用stopService()停止service,但是在service内部也可以使用stopSelf()停止service()

service的粘性

使用startService()激活的service会具有粘性,被意外终止的service会自动重启,会经历onCreate()--->onStartCommand()在startCommand()方法中的返回值,决定Service的粘性

1)Service.START_NOT_TICKY;//粘性

2)Service.START_STICKY;非粘性的

3)Service.STARTSTICKY_COMPATIBILITY;//兼容性粘性

4)service.START_REDELIVER_INTENT;粘性的 并且重启Service时会重新传值Intent

使用绑定的Service进行激活

绑定Service是通过bindService()激活Service的一种方式,绑定的Service是非粘性的

绑定的Service会对进程产生影响,若绑定Service是前台的,则Service也是前台的,若可见的进程绑定Service,则Service是可见的

绑定Service的生命周期为:onCreate()--->onBind()---->onDestory()

在service的onBind()方法中返回值不可以为null;否则将绑定不成功,在Activity中的ServiceConnection()方法不会被回调,也不能得到IBBinder

绑定的Service最后一定要解除绑定,最晚也要在Activity的onDestory()方法中解除绑定,调用的方法是unbindService()

Service的绑定流程

1)自定义service并继承service在AndroidMainfest.xml中声明service并根据具体情况是否添加隐式调用

2)自定义接口,约定其它组件(如Activity)调用Service方法的时候调用该方法

3)通常情况下,在Service中定义内部类几成Binder并实现自定义接口,重写自定义接口方法,吧其它组件需要调用的Service方法写到此方法中

4)定义IBBinder对象,并实例化内部类,在onBinder中返回该IBinder对象

5)在调用Service的组件中通过bindService(ServiceConnection flags) 激活service对象 在接口中定义该对象并强制转化为自定义接口类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值