Service学习总结

生命周期:
通过startservice启动
正常运行时,顺序
onCreate
onStartCommand
onStart
调用stopService后
onDestroy

通过系统切片杀掉软件后,service会关掉,不会走onDestroy,过一会service会自动再启动,这个service相当于重新new了一个,数据全部是刚创建时的状态,顺序是
onCreate
onStartCommand
onStart

通过bindservice启动( 绑定的activity的ondestory中一定要unbind,否则activity结束时可能会报错
onCreate
onBind
调用unbindService后
onDestory

bind服务如果通过系统切片杀掉软件后,service会关掉,不会走onDestory,service在主动再次启动前不会再次启动

bind启动服务方式
activity:
private TestService bindService = null ;

private ServiceConnection conn = new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        isBound = true ;
        TestService.MyBinder binder = (TestService.MyBinder) service;
        bindService = binder.getService();
    }

    @Override
    public void onServiceDisconnected(ComponentName name) {
        isBound = false ;
        bindService = null ;
    }
};

service( TestService ):
public MyBinder binder = new MyBinder();
public class MyBinder extends Binder{
    public TestService getService(){
        return TestService. this ;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值