一、什么是Activity?

Activity中文意思是活动的意思,是可以和用户交互的最小呈现单元,类似于windows中的窗口,但是没有最大化、最小化的概念。

二、Activity的三种状态

Activity的三个状态:Activity的状态有running、Paused、Stop。running是正在运行状态,当一个Activity位于屏幕的最上层,位于系统堆栈的最顶端时,这个Activity处于running状态。Paused是暂停状态,当一个Activity失去焦点,但是还能看得清画面,此时,这个Activity就处于Paused状态,注意当系统内存不够时,会将优先级较低的Activity删除。Stop是停止状态,此时Activity呗被其他Activity遮住,但是还保留全部的状态和数据,也就是接下来要说的生命周期中的onStop()之后而没有惊醒onDestory(),注意当系统内存不足时,这种Stop状态的Activity最先被系统释放内存。

三、Activity的周期

Android 最小化方案 activity最小化_Android 最小化方案

如图所示是android官方文档中关于Activity的生命周期的描述图。由图中可以看出Activity生命周期中有七大方法,分别是:onCreat()、onStart()、onResume()、onPause()、onStop()、onRestart()、onDestory();

当用户打开一个Activity时,首先执行onCreate()方法,进行一些静态的设置,创建界面,还有绑定一些数据,这个方法提供了一个Bundle,可以还原之前关闭时候的设置。onCreate()方法之后执行onStart()方法,onStart()方法起一个过渡作用,如果接下来应用程序要出现在前台,就执行onResume()方法,如果接下来应用程序要隐藏,就执行onStop()方法。onResume()方法的时候用户和程序进行交互,此时,这个Activity在Activity堆的最高处。onResume()之后通常执行onPause()方法,此时Activity对用户可见但是不可交互,未保存的数据会被固定,动画和其他一些消耗cpu资源的东西会被关闭,此时这个Activity可能会被系统释放的(不同平台不一样),而在onPause()之后可能执行onResume()(这个Activity重新回到用户面前),也可能执行onStop()(被覆盖)。onStop()方法执行,此时Activity对用户不可见,可能是被其他Activity覆盖,也可能是被onDestory()。如果接下来这个Activity被用户打开需要交互,接下来就执行onRestart(),否则执行onDestory()。onRestart()方法是先前的Activity被暂停然后又被用户唤醒去进行交互,出现在onStop()之后,之后跟onStart()方法。onDestary()方法早onStop()方法之后,此时Activity被摧毁,可能两种情况,一种是执行了finish(),一种是系统为了释放空间而暂时销毁Activity,可以通过isFinishing()方法区分两种情节。

注意Activity在onCreate()、onStart()、onResume、onRestart()四种方法时不会被系统因为释放内存而关闭Activity,而在onPause()(不同平台不一样)、onStop()、onDestory()三种方法时可能会被系统因为释放内存而关闭Activity。

三种状态和七种方法的关系:onResume()之后是running状态,onPause()之后onStop()之前是Pause状态,onStop()之后onDestory()之前是Stop状态。