关于service相关知识的认识

        作android的程序开发也有了许久了,当作一个大程序的时候,愈来愈发现service是很是有用的方法,当你想后台运行数据或者音乐播放操做的时候,均可以才有service,根据实际状况,写成local service仍是remote service,来帮助整个应用更加稳定。android

网上关于service的文章不少,我本身在用的时候也在最初有不少不解,我在这里看成本身的只是备份。spa

      一、何时会调用OnDestroy()呢?.net

        最初我是直接链接adb,把我运行起来的service 杀掉,可是我发现他不会进入OnDestroy(),最后发现,只有调用了stopService()或者调用了stopSelf()的时候,才会触发起OnDestroy,也就是若是咱们的service指针

由于程序逻辑或者变量空指针异常等挂掉时候,是不会调用OnDestroy()。对象

     二、程序里什么都没有设置,可是service被本身kill掉后,为何又能够看到本身启动起来了?blog

       那是由于,Service在被启动起来后,在执行onStartCommand的时候,flags为START_STICKY_COMPATIBILITY,就是说Service在被kill后,是有可能会被从新启动的,这样的返回值一共有四个,分别为进程

      START_STICKY   若是service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。开发

      START_NOT_STICKY    service被异常kill掉,系统不会自动重启该服务。rem

      START_REDELIVER_INTENT   若是service进程被kill掉,系统会自动重启该服务,并将Intent的值传入。get

      START_STICKY_COMPATIBILITY    和START_STICKY 差很少,可是不保证服务被kill后必定能重启。

      我在网上看了这个资料,能够帮助深刻了解一些这几个返回值http://blog.csdn.net/veryitman/article/details/7600008

     今天先写这么多,后续继续写》》》》

相关文章
相关标签/搜索