Startservice的生命周期

来源:互联网 发布:在职博士 知乎 编辑:程序博客网 时间:2024/06/10 03:16
对于service大体上有三种
1)启动模式的Service
2)绑定模式的Service
3)混合模式的Service

===============================

今天对于1)启动模式的Service的生命周期中各个方法做一个简单的概述:

1)onCreate (service创建时执行)在一个service中只会执行一次
2)onStartCommand(每次启动都会执行):可以执行N次,在service中被暂停回来,就会再次执行
3)onDestory(service销毁时会执行):只会执行一次

note:在onStartCommand(Intent intent, int flags, int startId)
有几个参数需要注意

1)intent:用来传递信息,intent.getXXXXExtra(" aciton")(类似于Map)-->为key

2)startId:每次启动或startId是不一样的,用来区别service

3)对于onStartCommand()是需要返回值的

            1)START_REDELIVER_INTENT:被非正常kill以后,还会自启,同时会重新传递intent

             2)START_STICKY_COMPATIBILITY:service被非正常kill以后,不保证service一定能够启动

            3) START_STICKY:service被非正常kill,它还会自动启动,但是不会重新传递intent

             4)START_NOT_STICKY:service被非正常kill,它不会自动启动

大体上有这几种,但是一般在app的开发中如果一个service是执行一个耗时操作,同时被非正常kill

就可以利用START_REDELIVER_INTENT做为返回值,这样就可以调高app的健壮性。



1 0
原创粉丝点击