Service组件

1、分类:本地服务(Started启动服务)和网络服务(Bound绑定服务)
2、区别:
(1)调用:
Started--startService();进入Service的onStartCommand()方法;

Bound--bindService();进入Service的onBind()方法;绑定是异步的,客户端需要创建ServiceConnection实例来接收onBind()方法返回的IBinder.{ServiceConnection实例需要重写onServiceConnected()和onServiceDisconnected()两个回调方法}
说明:只有Activity、Service和ContentProvider能绑定到服务,BroadcastReceiver不能绑定到服务。

注:当服务第一次创建时,系统会先调用onCreate执行一次性建立过程。
(2)停止/销毁服务
Started--1)组件调用stopService();2) 启动后处于Started状态,会在后台无限期运行,即使调用的组件已销毁。当操作完成时,会调用stopSelf()停止自身服务。当有多个请求时,停止服务使用stopSelf(int)来确保停止服务的请求总是基于最近收到的启动请求。
注:仅当内存不足并且必须回收系统资源时,才会强制停止服务。

Bound--组件与服务解除绑定时(组件调用unbindService()),服务会被销毁。
当客户端销毁时,会将其从服务上解绑定。但当与服务交互或者Activity暂停时,最好解绑定,以便系统能及时停止不用的服务。

注:默认情况下,服务运行于管理它的进程的主线程,不会创建自己的线程,也不会运行于独立的进程。但当服务需要完成CPU密集工作或者阻塞操作(如MP3回收或者联网),开发人员需要在服务中创建新线程来完成这些工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值