关于service的生命周期

* 用start的方式启动服务 service在主线程执行

* onCreate -> onStartCommand -> onDestroy

* 用bind的方式启动服务

* onCreate -> onBind -> onUnbind -> onDestroy

值得一提的是 service 是执行在主线程的。

startService和bindService是可以同时执行的,如果在bindService里面flags参数没有设置成BIND_AUTO_CREATE的时候是不会启动Service的。如果bindService的flags没有设置成BIND_AUTO_CREATE,先调用bind Service不会启动,然后调用startService,onBind生命周期会执行一次。

又关于Service的通讯,下发命令用的是startService,但是接受命令可以使用广播的方式在需要的时候把参数传递出来。

有一点可能面试的时候会问到 服务在主线程里面启动服务会在主线程强工作 在子线程里面启动服务依然会在主线程工作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。