android服务类 Service

                当只使用startService()来启动服务

startService可以多次调用,stopService()也可以多次调用。

总结:::startService第一次调用的时候,Service的生命周期方法

       onCreate()---->onStartCommand()会执行。再次并多次调用startService会使Service的        生命周期方法onStartCommand()多次执行,onCreate()方法不执行了。

总结:::调用stopService()是如果Service已经启动,Service生命周 期方法 onDestroy()会                                  执行。再次并多次调用没有任何反应不回调生命周期方法了。可以多次调用(不崩溃)


  


                当只使用bindservice()来启动服务

bindservice()方法可以多次调用,unbindService()方法不可以多次调用(应用会崩溃)。

总结:::bindService()并且《bindService()方法第三个参数

      是Context.BIND_AUTO_CREATE》 的时候,第一次调用bindService()方法       Service生命周期方法

      onCreate()-->onBind()执行,再次并多次调用生命周期方法不回调。


总结:::bindService()并且《bindService()方法第三个参数

      Context.BIND_AUTO_CREATE的时候,第一次(再次多次)调用bindService()方       法Servic生命周期方法都不会回调。(因为这个时候服务没有启动)



总结:::unbindService()方法如果调用了,Service必须注册了(即调用过bindService方        法),service生命周期的onUnbind()-->onDestroy()。如果没有注册过那么调用     unbindService()会崩溃。所以不能再次并多次调用unbindService()。









       同时使用了 startService()bindService()并且《bindService()方法第三个参数                                                是Context.BIND_AUTO_CREATE》。

情况1:::如果我们只调用stopService(),不会回调任何生命周期方法。只有我们再次调                                                 用unbindService()才会执行ervice的生命周期的ubind()和onDestroy()方法。

情况2:::如果先调用unbindService()方法会先执行Service的生命周期的ubind(),然后再调                                               用stopService()方法就会执行Service的生命周期的onDestroy()方法。

总结:::在Context.BIND_AUTO_CREATE模式下同时使用了 startService()和bindService(),想要                                   完全退出Service必须调用stopService()和unbindService()两个方法。

 

          

          

      同时使用了 startService()bindService()并且《bindService()方法第三个参数

                            不是Context.BIND_AUTO_CREATE》。

情况1:::如果我们只调用stopService(),那就会执行Service的生命周期的unbind()和onDestroy()                                 方法(可以不必调用unbindService())。

情况2:::如果先调用unbindService()方法会先执行Service的生命周期的ubind(),如果再调                                               用stopService()方法就会执行Service的生命周期的onDestroy()方法。

总结:::不在Context.BIND_AUTO_CREATE模式下,同时使用了 startService()和bindService()                                        可以只调用stopService()方法来完全退出Service。



你可能感兴趣的:(android服务类 Service)