Android 系统中 Activity的生命周期
标签:
it软件androidactivityoncreate |
分类: 我的IT |
IOS系统玩了一个很精明的计策在于当软件发生卡顿时,不给软件片刻等待的机会,直接退出,这也是为什么有人说苹果手机有闪退现象,却不承认它卡顿的原因,所谓的流畅性,只不过是牺牲了等待间隔为代价罢了,可怜Android太傻,一直在那傻傻的等了5秒,这五秒的等待给了用户以卡顿感,造成了不友好的体验,就像两个人恋爱,有人愿意等你你觉得别人的烦,有人索性直接分手走的痛快
Android手机在打开一个软件界面去运行到软件退出,分为7几个状态.分别是 onCreate()
创建状态, onStart() 开始状态 onResume() 运行状态 onPause() 暂停状态
onStop()停止状态
例如我们打开新浪微博,点击图标到加载出微博界面(即一个Activity)过程,分别初始化了
onCreate() ,onStart()
以上是描述了Android手机中人与软件正常交互的过程产生的状态,如果用户在刷微博的过程中来了电话或短信,或不按返回键直接按了Home键退出软件,这时软件属于非正常退出,这时退出前便会调用Activity中的onSaveInstanceState(Bundle outState)方法来处理突发操作,用来保存用户的操作记录,待用户接过电话再次打开软件介面时便会调用onRestoreInstanceState(Bundle savedInstanceState)方法去恢复上次用户的非正常操作导致的软件退出,另一种异常便是卡顿的产生,当用户打开一个超大长图或看视频传输过程中发生了传输错误,等非法未知错误时软件便发生卡顿现象,这时软件无法处理用户的操作而交由Android系统去判别是否发生了异常,Android系统在底层设计用软件主线程在5秒内是否活跃来判断软件是否发生了运行错误,如果5秒内系统得不到软件的反馈便断定该软件发生卡顿现象,于是系统便强行退出该软件,即强制杀死该主线程. 而IOS系统没有给予软件等待的时间,一旦系统与主线程通信异常,便强行退出软件,故发生了所谓的闪退.
最后讲一个Android系统的内存管理机制,Android系统的内存管理机制属于操作优先的原则,即当一个系统后台有多个软件在运行时,如果内存紧张,系统便会强制杀死多余的不活跃进程,去为当前与用户交互的软件负责,即我有2G内存系统会分配2G的使用方法,我有512M内存,系统也会自动分配出512M内存的运行方式,所谓内存越大越好,只不过是增加了后台软件的运行量罢了,与交互软件的操作无关.
最后附上Activity的生命周期图,文章若有异意者,欢迎斧正交流:

加载中…