Activity栈:先进先出规则

  Android系统是一个多任务(Multi-Task)的操作系统,可以在用手机听音乐的同时,也执行其他多个程序。每多执行一个应用程序,会多耗费一些系统内存,当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统会觉得越来越慢,甚至不稳定。

  为了解决这个问题, Android 引入了一个新的机制-- 生命周期(Life Cycle)。

  Android 应用程序的生命周期是由Android 框架进行管理,而不是由应用程序直接控

  制。通常,每一个应用程序(入口一般会是一个Activity 的onCreate 方法),都会产生

  一个进程(Process)。当系统内存即将不足的时候,会依照优先级自动进行进程(process)的回收。不管是使用者或开发者, 都无法确定的应用程序何时会被回收。所以为了很好的防止数据丢失和其他问题,了解生命周期很重要。

  Activity生命周期:

  图3.1activity生命周期图

  Activity整个生命周期的4种状态、7个重要方法和3个嵌套循环

  1> 四种状态

  活动(Active/Running)状态

  当Activity运行在屏幕前台(处于当前任务活动栈的上面),此时它获取了焦点能响应用户的操作,属于运行状态,同一个时刻只会有一个Activity 处于活动(Active)或运行

  (Running)状态

  暂停(Paused)状态

  当Activity失去焦点但仍对用户可见(如在它之上有另一个透明的Activity或Toast、AlertDialog等弹出窗口时)它处于暂停状态。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但是当系统内存极小时可以被系统杀掉

  3. 停止(Stopped)状态

  完全被另一个Activity遮挡时处于停止状态,它仍然保留着所有的状态和成员信息。只是对用户不可见,当其他地方需要内存时它往往被系统杀掉