Service的两种启动方式及其之间的区别

作为Android四大组价之一的Service,可以在很多场合中进行应用。比如当在播放音频的时候用户启动了其他Activity,这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,或者在后台记录用户地理位置信息的变化等等。开启Service主要有两种方式。

(1)startService();此种开启方式Service会经历onCreate()--onStart()。若Service还没运行,则先调用onCreate(),然后调用onStart();如果Service已经启动,则只会调用onStart()。一个Service的onStart()方法可以被调用多次。stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。

注:多次调用startService()方法并不会嵌套,所以无论同一个服务被启动了多少次,一旦调用stopService()或者sopSelf(),他都会立刻停止。

(2)bindService():此种启动方式Service会经历onCreate()--onBind(),onBind将会返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service的运行状态等。这个时候调用者会和Service绑定在一起,调用者退出的时候,Service就会调用onUnbind--onDestroy退出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值