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();
 }


 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值