Android中Service的生命周期
(1)通过context的startService()启动service,系统会调用OnCreate()创建service实例,然后调用OnStartCommand()使service运行起来,任务执行完成后,通过stopSelf()或者context的stopService()结束service的运行,系统会调用OnDestroy()。如果Service实例已经创建了,每次调用startService(),系统都会调用OnStartCommand;如果调用者退出却没有调用stopService,service中也没有调用stopSelf(),Service会一直在后台运行。
(2)通过context的bindService(intent、serviceConnection、int)绑定一个service,如果service没有被创建的话,系统会调用OnCreate()创建service实例,activity和service绑定成功后,onBind(Ibinder ibinder)会返回binder对象传递到serviceConnection的onServiceConnected()的参数中,拿到service的binder对象,可以执行service中的方法。如果service实例已经存在,系统会只调用onBind()。任务执行完成后,调用者通过调用unBindService()解除和service的绑定,当和service绑定的所有调用者都解除绑定之后,系统会调用onUnBind(),之后会调用OnDestroy()销毁service实例。
参考链接:
http://www.cnblogs.com/mengdd/archive/2013/03/24/2979944.html
http://blog.csdn.net/agods/article/details/7468431
更多相关文章
- [Android]Fragment的应用/点击替换fragment应用实例
- Android音频录制MediaRecorder之简易的录音软件
- datetimepicker一个不错的日历android特效
- Android之DIalog的控制详解
- Android(安卓)Gallery3D源码分析(二)
- Mac及Android环境下的JNI学习
- Android(安卓)CursorLoader相关
- Android(安卓)arm linux 系统调用实现
- 分享一个 Android(安卓)全局获取 Context 的类(无需配置 Applicat