Service
Service 启动
- startService() 启动之后生命周期走onCreate()->(),这里进去之后也是主线程,要注意ANR(这玩意到处在,广播也有。),然后Service 就被放飞自己我了,干什么都可以不再跟Activity报告了。下次你再startService时候就只会进入StartCommand()了。 当然也可以强制关闭,一个是Service自己关闭,在Service 自己调用Stopself();或者外部调用stopService()也可以关闭这个Service,下面写简单的生命周期流程 :
Service生命周期(一).PNG
至于一个抽象方法onBind()这时候返回一个null 就完事了。 - bindService() 启动之后会拿到一个Ibinder对象 然后调用拿到这个Binder对象之后就可以为所欲为了,比如IPC中的Messenger :https://www.jianshu.com/p/b2c86d4aa366,这种启动方式就是多了一个对象的引用可以对Service 内部方法进行调用,最后要注意解绑unbinderService();不然会泄露,然后OOM。
网友评论