安卓service 基础

来源:互联网 发布:2016淘宝女装店铺推荐 编辑:程序博客网 时间:2024/05/24 22:43

一、Service概述及用途 

概述:服务是运行在后台的一段代码。不是进程也不是线程。 可以运行在它自己的进程,也可以运行在其他应用程序的上下文(Context)里面,这取决于自身的需要。Android中的服务,与Activity不同,他不能与用户交互,不能自己启动,运行在后台的程序里。

用途:媒体播放器的服务,当用户退出媒体选择用户界面时,仍然希望音乐可以继续播放,这就是由服务(Service)来保证当用户界面关闭时音乐继续播放。比如当我们一个应用数据是通过网络获取的,不同时间的数据是不同的,这时候我们可以用Service在后台定时更新,而不是每次打开应用时再去获取。

二、Service生命周期

onCreate():在服务被创建时调用,该方法只会被调用一次,无论调用多少次startService()bindService()方法,服务也只会被创建一次。

onStrat():只有采用Context.startService()方法启动服务时才会回调该方法。该方法在服务开始运行时被调用。多次调用startService()方法尽管不会多次创建服务,但onStart()方法会被多次调用。

onDestory():服务被终止时调用。

onBind():只有采用Context.bindService()方法启动服务时才会回调该方。该方法在调用者与服务绑定时被调用,当调用者与服务已经多次绑定,多次调用Context.bindService()方法并不会导致该方法被多次调用。

onUnbind():只有采用Context.bindService()方法启动服务时才会回调该方法。该与服务解除绑定时被调用。

startService后,即使调用startService的进程结束了Service仍然还存在,直到有进程调用stopService,或者Service自己自杀(stopSelf())

bindService后,Service就和调用bindService的进程同生共死了,也就是说当调用bindService的进程死了,那么它bindservice也要跟着被结束,当然期间也可以调用unbindServiceService结束。

两种方式混合使用时,比如说你startService了,我bindService了,那么只有你stopService了而且我也unbindservice了,这个Service才会被结束。





0 0
原创粉丝点击