什么是Service?
Service是Android四大组件之一,是一种计算型组件,运行于主线程中,用于在后台执行一系列计算任务(但是耗时计算仍然需要在单独的线程中完成,不能用Service处理)。
Service有两种状态:启动状态,绑定状态。启动状态下的Service不能与外界有直接的交互通信;绑定状态的Service可以方便的与外界进行通信。
问题一、Service的start和bind状态有什么区别?
start启动的service,service有独立的生命周期,不依赖某个组件。
多次调用onStart方法,会调用多次onStartCommand,start启动的service,必须通过stopService或者stopSelf来停止service(intentService会自动调用stopSelf方法)。
多次调用bind方法,只会调用一次onBind方法。bind绑定的service,service会依赖该组件,组件销毁,Service跟随组件销毁。
问题二、同一个Service,先startService,然后bindService,如何把它停止掉?
startService方法不论调用多少次,都只需要一次stopService即可停止。
bindService多次,会调用一次stopService跟多次unBindService方法,但是如果是同一个组件bind同一个Service多次,那么只需要调用unBind一次。执行完stopService跟unBindService后,会调用onDestoryService方法一次。
问题三、Service的onStartCommand方法的返回值描述?不同返回值有什么区别?
问题四、Service的生命周期描述以及运行的线程说明?
(未完待续)
网友评论