android service的启动方式有哪几种
?〆╰☆╮ping
2024-05-30 02:54:36
最佳回答
service的生命周期service的生命周期方法比activity少一些,只有oncreate,onstart,ondestroy 我们有两种方式启动一个service,他们对service生命周期的影响是不一样的。 1;通过startservice: service会经历oncreate->onstart, stopservice的时候直接ondestroy如果是调用者(testserviceholder)自己直接退出而没有调用stopservice的话,service会一直在后台运行。下次testserviceholder再起来可以stopservice。 2:通过bindservice: service只会运行oncreate,这个时候testserviceholder和testservice绑定在一起 testserviceholder退出了,srevice就会调用onunbind->ondestroyed所谓绑定在一起就共存亡了。 那有同学问了,要是这几个方法交织在一起的话,会出现什么情况呢? 一个原则是service的oncreate的方法只会被调用一次,就是你无论多少次的startservice又bindservice,service只被创建一次。如果先是bind了,那么start的时候就直接运行service的onstart方法,如果先是start,那么bind的时候就直接运行onbind方法。如果你先bind上了,就stop不掉了,对啊,就是stopservice不好使了,只能先unbindservice,再stopservice,所以是先start还是先bind行为是有区别的。 20210311