一. 自定义Service启动方式
Service没有用户界面,运行与后台。一般用于给前台Activity提供特定服务。服务不能自己运行,启动用户自定义Service的方式有两种:Context.startService
或 Context.bindService。
(一)startService
使用startService()方法启用服务后,调用者与服务之间没有关连。调用者直接退出(假设应用没有退出)而没有调用stopService的话,Service会一直在后台运行。下次调用者再起来仍然可以
1)启动流程:
如果调用前服务没有被创建,则会引起onCreate()->onStart();
如果已被创建,则多次调用startService只会引起onStart()被多次调用。
2)结束方式:
只能调用Context.stopService()结束服务,系统会自动调用到onDestroy()方法。
(二)bindService
使用bindService()方法启用服务,调用者与服务绑定在一起了,调用者一旦退出,服务也就自动终止。
1)启动流程:
如果调用前服务没有被创建,则会引起onCreate()->onBind();
如果已被创建但没有被绑定,则会引起onBind();
如果服务已被绑定,则多次调用bindService并不会引起onCreate()和onBind()被多次调用。
2)结束方式:
调用者退出,系统会自动调用服务到onUnbind()->onDestroy(