Java_Service详解.ppt

Java_Service详解.ppt

ID:48773900

大小:470.00 KB

页数:23页

时间:2020-01-23

Java_Service详解.ppt_第1页
Java_Service详解.ppt_第2页
Java_Service详解.ppt_第3页
Java_Service详解.ppt_第4页
Java_Service详解.ppt_第5页
资源描述:

《Java_Service详解.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android应用开发06Java_ServiceService简介Service的启动生命周期BinderAIDL实现接口时的几个原则IPC的调用步骤2服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序进程的上下文(context)里面,这取决于自身的需要。其它的组件可以绑定到一个服务(Service)上面,通过远程过程调用(RPC)来调用这个方法。例如媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐依然可以继续播放,这时就是由服务(service)来保证当用户界面

2、关闭时音乐继续播放的。它跟Activity的级别差不多,但是它不能自己运行,需要通过某一个Activity或者其他Context对象来调用。Service简介3Service有两种启动方式:1.第一种是通过调用Context.startService()启动,调用Context.stopService()结束,startService()可以传递参数给Service。2.第二种方式是通过调用Context.bindService()启动,调用Context.unbindservice()结束,还可以通过S

3、erviceConnection访问Service。二者可以混合使用,比如说我可以先startService再bindService。Service的启动Service由Activity启动,但是并不依赖于Activity,即当Activity生命周期结束时,Service仍然会继续运行。startService后,即使调用startService的进程结束了,Service仍然还存在,直到有进程调用stopService,或者Service自己自杀(stopSelf())。bindService后,Se

4、rvice就和调用bindService的进程同生共死了,也就是说当调用bindService的进程死了,那么它bind的Service也要跟着被结束,当然期间也可以调用unbindservice让Service结束。两种方式混合使用时,比如说你startService了,我bindService了,那么只有你stopService了而且也unbindservice了,这个Service才会被结束。生命周期Android系统将会尝试保留那些启动了的或者是绑定了服务的进程。如果该服务正在进程的onCreat

5、e(),onStart(),或者onDestroy()这些方法中执行时,那么主进程将会成为一个前台进程,以确保此代码不会被停止。如果服务已经开始,那么它的主进程会就重要性而言低于所有可见的进程但高于不可见的进程,由于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会停止.。如果有多个客户端绑定了服务,只要客户端中的一个对于用户是可见的,即认为该服务可见。如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用on

6、Start(),所以一个Service的onStart方法可能会重复调用多次。生命周期stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。所以调用startService的生命周期为:onCreate-->onStart(可多次调用)-->onDestroy使用context.bindService()启动Service会经历:

7、context.bindService()->onCreate()->onBind()->ServicerunningonUnbind()->onDestroy()->Servicestop生命周期onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind->onDestroy相应退出。所以

8、调用bindService的生命周期为:onCreate-->onBind(只一次,不可多次绑定)-->onUnbind-->onDestory。所以,在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。生命周期Android对进程间通信实现了一套轻量级的IPC机制

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。