Android四大组件之Service详解
一、Service简介
Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。
Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Service中执行耗时的操作,除非你在Service中创建了子线程来完成耗时操作。
二、Service生命周期
1.startService / stopService
生命周期顺序:onCreate->onStartCommand->onDestroy
OnCreate()
系统在service第一次创建时执行此方法,来执行只运行一次的初始化工作。如果service已经运行,这个方法不会被调用。
onStartCommand()
每次客户端调用startService()方法启动该Service都会回调该方法(多次调用)。一旦这个方法执行,service就启动并且在后台长期运行。通过调用stopSelf()或stopService()来停止服务。
OnDestory()
系统在service不再被使用并要销毁时调用此方法(一次调用)。service应在此方法中释放资源,比如线程,已注册的侦听器,接收器等等.这是service收到的最后一个调用。
2.bindService / unbindService
生命周期顺序:onCreate->onBind->onUnBind->onDestroy
同样首先是OnCreate(),接着是
OnBind()
当组件调用bindService()想要绑定到service时(比如想要执行进程间通讯)系统调用此方法(一次调用,一旦绑定后,下次再调用bindService()不会回调该方法)。在你的实现中,你必须提供一个返回一个IBinder来以使客户端能够使用它与service通讯,你必须总是实现这个方法,但是如果你不允许绑定,那么你应返回null。
OnUnbind()
当前组件调用unbindService(),想要解除与service的绑定时系统调用此方法(一次调用,一旦解除绑定后,下次再调用unbindService()会抛出异常)。
最后是OnDestory()
注意:通过bindService启动的Service的生命周期依附于启动它的Context。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
相关文章
Android中自定义ImageView添加文字设置按下效果详解
这篇文章主要给大家介绍了关于Android中自定义ImageView添加文字设置按下效果的相关资料,实现后的效果非常利用用户的体验,文中给出了详细的示例代码供大家参考学习,需要的朋友们下面随着小编来一起学习学习下吧。2017-08-08Android开源AndroidSideMenu实现抽屉和侧滑菜单
这篇文章主要为大家详细介绍了Android开源AndroidSideMenu实现抽屉和侧滑菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-02-02Android项目实战手把手教你画圆形水波纹loadingview
这篇文章主要为大家详细介绍了Android项目实战手把手教你画圆形水波纹loadingview,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-01-01
最新评论