Service

Service:

           1功能:是不需要与用户直接交互的后台活动。即使应用程序没有处于前台,service依然可以运行。

           2启动方式:

                  2.1:Context.startService(Param);这种请求启动方式是启动一个独立的Service,能够在手机服务中看到。它依附于启动它的应用程序的主线程中,它不会依附于某个                    具体的Context,它不会另起线程。
                  这种方式请求启动的Service在系统创建它的实例后会依次执行Service的生命周期函数onCreate()、onStartCommand()。在Service存在实例后再Context.startService()
                  只会执行Service的onStartCommand()。onCreate()只会在第一次创建Service实例的时候执行。当Context.stopService(Param)或Service实例自身调用stopself(),则会 
                 调用Service的onDestory()函数并销毁Service。
                 2.2:Context.bindService(Param),这种请求启动方式是将Context绑定一个Service,这种绑定的服务在手机服务中无法直接看到。它依附于绑定它的Context,也不会                      另起线程。这种方式请求启动的Service在启动后依次会执行onCreate()、onBind()。在Service的onBind()调用后,会回调一个在绑定时传入的ServiceConnetion子对像                   的onServiceConnection()方法,该方法会传入onBind()的返回参数,这个参数类型是IBinder,Context实例通过这个返回的IBinder对象就可以操作Service通过这个接口                 提供的服务了,也就有了绑定的意思。当同一个Context再调用Context.bindService(Param),不会再调用onCreate(),只会调用Service的onBind()以及绑定后续函数。
                Context.unBind()调用后会调用Service的onUnbind()。当多个context都Context.bindService()到同一个Service时,这个时候会调用Service的onRebind()。

                注意事项:1.Service都是单例的

                                    2.当一个Service只与一个Activity绑定的时候,当Activity销毁或调用context.unbind()的时候,也会依次调用Service的onUnbind()、onDestory(),然后销毁

               Service。若一个Service绑定 多个Activity的时候,在Activity销毁的时候只会执行Service的onUnbind()而不会销毁Service,直到最后一个绑定的Activity销毁。

                                   3.若服务及被启动又被绑定,则若想销毁Service,这必须既要调用Context.stop()也要调用调用Context.unbind()才能销毁掉Service.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值