Activity 生命周期

发布时间:2017-09-10 11:11:54
Activity 生命周期 Activity 生命周期

Activities 在系统中是以 activity 栈的形式被管理的。当一个新的 activity 启动时,它将会被放到栈的顶部并变成 running activity——上一个activity 会被至于它的下面,在新 activity 存在期间它都不会到前端来。

一个 activity 有四个重要的状态:

如果一个 activity 在屏幕前端(在栈的顶部),它处于activie或是running 状态。

如果一个 activity 失去焦点,但是还可见(一个新的非全屏的或透明的 activity 获得焦点并处于该activity 的上部),专题,它处于 paused 状态。一个处于暂停状态的 activity 是完全存活的(它保持者所有的状态和成员信息,并且和window管理器保持联系),但是能够在系统内存极端匮乏时被系统销毁。

如果一个activity完全被另外一个activity覆盖,它会进入 stopped 状态。它仍然保存着所有状态和成员信息,但是不再对用户可见,所以它的窗口被隐藏并可能在任何系统内存不足的时候被销毁。

如果一个 activity 处于 paused 或 stopped 状态,系统可以要求它终止以释放它占有的内存区域,或直接杀死它所处的进程。当它再次展现给用户的时候,必须完全重启并重置到之前的状态。


下图表示了Activity的生命周期:

\

一个Activity的整个生命周期处于第一次调用 onCreate(Bundle)和调用 onDestroy()之间。在 onDestroy()中释放其占有的所有资源。例如,如果它有一个后台线程在从网络上下载数据,它可能是在 onCreate()中创建了该线程,然后在 onDestroy()中终止该线程。

一个 Activity 的可见生命周期从一次调用 onStart() 开始直到对应地调用 onStop()结束。在此期间,用户可以在屏幕上看到该activity,虽然它可能并不在前台并和用户交互。在这两个方法之间,你可以保持需要展示该activity给用户所需的资源。

一个activity 的前台生命周期在一次调用 onResume() 到对应地调用 onPause()期间。在此期间该 activity 处于其他所有 activity 的前面并且和用户交互。

Activity的生命周期方法:

activity 的整个生命周期被以下方法定义。你可以覆写这些方法,以便在activity状态改变的时候执行你需要的工作。所有的activity都需要实现 onCreate(Bundle) 方法来进行初始设置;可能还需要实现 onPause() 方法以便在activity退出与用户交互前保存用户改变的数据。在实现这些方法时需要调用父类的实现。

Activity 与生命周期相关的方法:

public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);

protected void onStart();

protected void onRestart();

protected void onResume();

protected void onPause();

protected void onStop();

protected void onDestroy();
}



企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:上海做网站 http://www.flpsz.com

上一篇:.NET正则表达式
下一篇:最后一页

友情链接

独家出品

新闻由机器选取每5分钟自动更新

新闻搜索源于互联网新闻网站和频道,系自动分类排列,本站不刊登或转载任何完整的新闻内容