Service 小记

    Service 适合执行那些不需要和用户交互,还要求长期运行的后台任务。

    Service 默认是运行于当前进程的主线程,并不会主动创建线程。通常我们需要在 service 内部创建子线程来执行任务。

用法:

    继承 Service 

    onCreate()    创建时调用

    onStartCommand(Intent intent, int flags, int startId)    每次启动时调用

    onDestroy()    销毁时调用

启动与停止服务:

    context 环境    startService(intent)    stopService(intent)    bindService()    unbindService()

    service 内部    stopSelf()

与 Activity 的通信:

    自定义类继承 Binder,并提供外部调用的方法,在 service 中创建实例并通过 onBind() 返回。

    Activity 中,创建 ServiceConnection 实例 connection

    bindService(intent, connection, BIND_AUTO_CREATE)    绑定服务,在连接完成时获取 binder 即可进行通信。 

    BIND_AUTO_CREATE 表示 activity 和 service 绑定后,自动创建服务,onCreate 会执行,onStartCommand 不会执行。

生命周期:

    startService:onCreate -> onStartCommand -> onStartCommand -> onDestroy

    bindService:onCreate -> onBind -> onDestroy

    service 有可能两种方法都调用了,此时则需要同时调用 stop 和 unbind,service 才会销毁。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值