首先了解Activity生命周期中的四种状态:
1、活动(active)状态:
当Activity运行在屏幕前台(处于当前任务活动栈的最上面),此时它获取了焦点,能响应用户的操作,属于运行状态,同一个时刻只会有一个Activity 处于活动(Active)或运行。
2、暂停(paused)状态:
当Activity失去焦点但仍对用户可见(如在它之上有另一个透明的Activity或Toast、AlertDialog等弹出窗口时)它处于暂停状态。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但是当系统内存极小时可以被系统杀掉。
3、停止(stoped)状态:
完全被另一个Activity遮挡时处于停止状态,它仍然保留着所有的状态和成员信息,只是对用户不可见,当其他地方需要内存时它往往被系统杀掉。
4、非活动(dead)状态:
Activity 尚未被启动、已经被手动终止,或已经被系统回收时处于非活动的状态,要手动终止Activity,可以在程序中调用"finish"方法,如果是(按根据内存不足时的回收规则)
被系统回收,可能是因为内存不足了。
内存不足时,Dalvak 虚拟机会根据其内存回收规则来回收内存:
1、空进程
2、不可见进程(处于stoped状态)
3、服务进程
4、可见进程(处于paused状态)
5、活动进程(处于active状态)