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)