Android—四大组件之Service
2014-07-14 14:02
211 查看
一、概述
Android中有两种方式开启一个服务,但它们的生命周期有所不同。
二、第一种方式调用startService启动服务:
1、当服务未启动,如果调用startService第一次启动服务会回调方法顺序为:onCreate -> onStart
2、当服务已启动,如果调用startSerivce启动服务只会回调方法为:onStart
3、当服务已启动,如果外部组件调用stopSerivce或内部调用stopSelf或stopSelfResult关闭服务会回调方法为:onDestroy
说明:这种服务不会因为服务创建者销毁而销毁,可能会因为系统内存紧张时被系统强制销毁(可以改变Serivice优先级延长它被销毁的时间)。无论启动多少次服务,只需要调用一次关闭服务就可以关闭服务。
三、第二种方式调用bindService绑定服务:
1、当服务未启动,如果调用bindService第一次绑定服务会回调方法顺序为:onCreate -> onBind -> onServiceConnected
2、当服务已启动,如果服务创建者再次调用bindSerivice不会回调任何方法,而非服务创建者调用bindService第一次绑定服务只会回调方法为:onServiceConnected
3、当服务已启动,如果非服务创建者调用unbindService会解除与之服务的绑定,但不会回调任何方法。而服务创建者调用unbindService会回调方法顺序为:onUnbind ->onDestroy
说明:这种服务会因为服务创建者的销毁而销毁,而且会回调方法顺序为:onUnbind -> onDestroy。无论非服务创建者调用多少次unbindService解除绑定,都不会关闭服务(解除自身与服务的绑定关系)。而只有服务创建者自己调用unbindService才会关闭服务。
注意:如果退出程序时使用System.exit(0)或者Process.killProcess(Process.myPid())方式完全退出,那么以调用startService启动服务的服务会中断然后再重启,以至于会回调方法顺序为:onCreate -> onStart。
Android中有两种方式开启一个服务,但它们的生命周期有所不同。
二、第一种方式调用startService启动服务:
1、当服务未启动,如果调用startService第一次启动服务会回调方法顺序为:onCreate -> onStart
2、当服务已启动,如果调用startSerivce启动服务只会回调方法为:onStart
3、当服务已启动,如果外部组件调用stopSerivce或内部调用stopSelf或stopSelfResult关闭服务会回调方法为:onDestroy
说明:这种服务不会因为服务创建者销毁而销毁,可能会因为系统内存紧张时被系统强制销毁(可以改变Serivice优先级延长它被销毁的时间)。无论启动多少次服务,只需要调用一次关闭服务就可以关闭服务。
三、第二种方式调用bindService绑定服务:
1、当服务未启动,如果调用bindService第一次绑定服务会回调方法顺序为:onCreate -> onBind -> onServiceConnected
2、当服务已启动,如果服务创建者再次调用bindSerivice不会回调任何方法,而非服务创建者调用bindService第一次绑定服务只会回调方法为:onServiceConnected
3、当服务已启动,如果非服务创建者调用unbindService会解除与之服务的绑定,但不会回调任何方法。而服务创建者调用unbindService会回调方法顺序为:onUnbind ->onDestroy
说明:这种服务会因为服务创建者的销毁而销毁,而且会回调方法顺序为:onUnbind -> onDestroy。无论非服务创建者调用多少次unbindService解除绑定,都不会关闭服务(解除自身与服务的绑定关系)。而只有服务创建者自己调用unbindService才会关闭服务。
注意:如果退出程序时使用System.exit(0)或者Process.killProcess(Process.myPid())方式完全退出,那么以调用startService启动服务的服务会中断然后再重启,以至于会回调方法顺序为:onCreate -> onStart。
相关文章推荐
- Android四大组件之 Service
- 01 Android应用的构成 四大组件 Activity, Intent Receiver , Service , Content Provider
- Android学习笔记39:Android四大组件之Service
- android四大组件之Service
- Java乔晓松-android的四大组件之一Service(服务的绑定)
- Android四大组件之 Service
- Android 四大组件(Activity、Service、BroadCastReceiver、ContentProvider)
- Android开发四大组件---Service详解
- android四大组件之一Service的startService()与bindService()区别?
- Android四大组件Activity、service、Content Provider、BroadCast Receiver
- android 编写Service(四大组件之一)的方法
- Android实训课程之三 这次课老师先是提到了Android有四大组件:Activity、Service、Broadcast Receiver、Content Provider。然后重点提到Acti
- Android学习笔记(2)————Android四大组件之二(Service )
- Android四大组件之一Service(服务)
- Android应用程序四大组件之Service(一)
- 01 Android应用的构成 四大组件 Activity, Intent Receiver , Service , Content Provider
- Android四大组件——Service 生命周期详解
- android四大组件之Service
- Java乔晓松-android的四大组件之一Service(服务的绑定)
- Android 四大组件(Activity、Service、BroadCastReceiver、ContentProvider)