Activity状态

来源:互联网 发布:seo新手怎么做简单 编辑:程序博客网 时间:2024/05/16 05:47

Active

Activity在栈的顶端时,它是可见的,有焦点的前台Activity,用来响应用户的输入。Android会不惜一切代价来尝试保证它的活跃性,需要的话它会杀死栈中更靠下的Activity来保证Active Activity需要的资源。当另一个Activity变成Active状态时,这个就会变成paused

Paused

在一些情况下,你的Activity可见但不拥有焦点;在这个时刻,它就是暂停的。当最前面的Activity是全透明或非全屏的Activity时,下面的Activity就会到达这个状态。当暂停时,这个Activity还是被看作是active的,但不接受用户的输入事件。在极端的情况下,Android会杀死一个pausedActivity来恢复资源给active Activity。当一个Activity完全不可见时,它就变成stopped

Stopped

当一个Activity不可见,它就“停止”了。这个Activity仍然留在内存里来保存所有的状态和成员信息;但是,在什么地方当系统需要内存时,它就是“罪犯”拉出去枪毙了。当一个Activity停止时,保存数据和当前UI状态是很重要的。一旦Activity退出或关闭,它就变成inactive

Inactive

当一个曾经被启动过的Activity被杀死时,它就变成inactiveInactive Activity会从Activity栈中移除,当它重新显示和使用时需要再次启动。

 

状态的变化是人为的,完全由Android内存管理器掌握着。Android会首先关闭那些包含inactive Activity的应用程序,其次关闭那些stopped的程序,极端的情况,会移除那些paused的程序。

 

为了保证无瑕疵的用户体验,这些状态的迁移对用户来说必须是不可见的。当Activitypausedstopped或者杀死的状态返回到active的时候,UI必须是无差别的。所以,当Activity暂停或停止时,保存所有的UI状态和数据是很重要的。一旦Activity变成active,它需要从保存的值中恢复。

0 0
原创粉丝点击