service的生命周期与activity生命周期区别

service的生命周期与activity生命周期区别

ID:34418529

大小:34.11 KB

页数:6页

时间:2019-03-06

service的生命周期与activity生命周期区别_第1页
service的生命周期与activity生命周期区别_第2页
service的生命周期与activity生命周期区别_第3页
service的生命周期与activity生命周期区别_第4页
service的生命周期与activity生命周期区别_第5页
资源描述:

《service的生命周期与activity生命周期区别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Service的生命周期与Activity生命周期区别http://my.oschina.net/xiahuawuyu/blog/687090人收藏此文章, 我要收藏发表于3个月前(2012-07-2411:54),已有196次阅读共0个评论 碰到一面试题  简述activity/service生命周期?组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁。在这期间,他们或许有效或许无效,有效时或许对用户可见或许不可见。下面我们就来讨论四个基本组件的生命周期,包括在生命周期内的各种状态,以及状态

2、之间的转换。这几种状态可能的结果是:进程让他们停止,然后实例被销毁。  一、activity生命周期    一个activity有三个基本的状态:  @当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态。这时activity会响应用户的操作。  @当activity失去焦点但是对用户仍然可见时为paused暂停状态。此时,别的activity在他的上面,透明或者备有被全部覆盖。所以其中一些暂停的activity也可以被显示。一个暂停的activity是处于活动状态的(他维护着所有的状态保存着信息,并且依然附着

3、在窗口管理器)。  @如果一个activity完全被另一个activity所掩盖那他会处于stop状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个activity仍一直处于隐藏状态,那么系统有可能会杀死他的进程。  如果一个activity是暂停或者停止状态,系统可以清理他们占用的内存,或者调用finish()方法,或者直接结束他的进程。当他再次显示给用户时,会完全的重新运行并且加载以前所存储的信息。  activity状态之间的转换,是通过以前的受保护方法完成的:  voidonCreate(BundlesavedI

4、nstanceState)  voidonStart()  voidonRestart()  voidonResume()  voidonPause()  voidonStop()  voidonDestroy()  这些都是钩子函数,你可以重写他们,当状态改变时做一些适当的处理。所有的activity在首次运行时必须实现onCreate()方法来初始化安装。activity可以实现onPause()来提交数据改变,然后准备停止与用户的交互。  调用超类  每一个实现的activity生命周期方法都会先调用一下父类的方法,例如:  viewpla

5、incopytoclipboardprint?  protectedvoidonPause(){       super.onPause();       ...    }  protectedvoidonPause(){     super.onPause();     ...  }  通过这两者比较?,这7个方法定义了一个activity的整个生命周期的方法。你可以实现并且监测这三个嵌套循环:  @整个生命周期  调用onCreate()方法和onDestroy()之间称为一个activity的完整的生命周期。activity会在onCrea

6、te()里执行所有的初始化安装,在onDestroy()方法里释放所有的剩余资源。例如:一个从网络下载程序的线程,就需要在onCreate()方法里创建,在onDestroy()方法里销毁。  @可见生命周期  可见生命周期是从onStart()方法到onStop()方法的时间。这段时间,用户会在屏幕上看到这个activity。尽管他可能不是在最顶层显示,也没有和用户进行任何交互。这两个方法之间,你可以保持需要向用户显示的资源。例如:你可以在onStart()方法时注册一个BroadcastReceiver检测某些变化来改变你的界面,当用户看不到

7、这个activity的界面时可以在onStop()里注销这个BroadcastReceiver。这两个方法可以被调用很多次,在可见和对用户隐藏时,作为候补的activity待命。  @前台显示周期  一个activity从onResume()方法指导一个onPause()方法称为前台显示周期。此时他在其他的activity之上显示并且与用户交互。一个activity可以频繁的在这两个方法之间过度,例如:当设备休眠或者另一个新的activity启动时,它会进入onPause()状态,当一个activity运行结束或者新的接收到Intent请求时,a

8、ctivity的onResume()会被调用。因此,这两个方法里的代码量会很少。  下图说明了上面说的几个循环,里面的箭头说明了两个状态

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

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

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