Android菜鸟饭团#Udacity Android#第十二课 活动笔记
什么是Service? Service是 Android 系统中的一种组件,它和Activity的级别差不多,但又Activity不同,它是不能与用户交互的,但可以和其他组件进行交互。它不能自己运行,只能后台运行。 Service的特点:没有可视的UI、后台运行,运行不阻塞前台UI、拥有服务的进程具有较高的优先级 Service的生命周期:Android Service的生命周期并不像Activity那么复杂,它只继承了onCreate(),onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法,具体的可以看下面的实例。
Service的生命周期 1. 被startService的
无论是否有任何活动绑定到该Service,都在后台运行。onCreate(若需要) -> onStart(int id, Bundle args). 多次startService,则onStart调用多次,但不会创建多个Service实例,只需要一次stop。该Service一直后台运行,直到stopService或者自己的stopSelf()或者资源不足由平台结束。 2. 被bindService的
调用bindService绑定,连接建立服务一直运行。未被startService只是BindService,则onCreate()执行,onStart(int,Bundle)不被调用;这种情况下绑定被解除,平台就可以清除该Service(连接销毁后,会导致解除,解除后就会销毁)。 3. 被启动又被绑定
类似startService的生命周期,onCreate onStart都会调用。 4. 停止服务时
stopService时显式onDestroy()。或不再有绑定(没有启动时)时隐式调用。有bind情况下stopService()不起作用。 服务启动的两种方式及用法:context.startService()和context.bindService()方式启动 提醒:使用Service之前必须在androidMainfest.xml 中注册 ① context.startService() 启动:context.startService() ---> onCreate() ---> onStartCommand() 销毁:ontext.stopService() ---> onDestroy(); 如果Service还没运行,则Android会先调用onCreate()方法,然后再调用onStartCommand(); 如果Service已经运行了,则只调用onStartCommand() 【书记员:刘鑫】 每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
|