activity生命周期理解

返回栈

android是使用任务来管理活动的,一个任务就是一组存放在栈里的活动集合,这个栈也称为返回栈。每当我们启动一个活动的时候,它会在返回栈中入栈,并处于栈顶。然后我们按下back键或者home键的或者启动新的活动的时候,处于栈顶的活动就会出栈。


activity的活动状态

每个活动在生命周期最多有四种状态,分别为:运行状态,暂停状态,停止状态,摧毁状态。

运行状态处于正在运行的状态

暂停状态为当一个活动不再处于栈顶但是还是处于可见的状态。

停止状态为当一个活动不再处于栈顶,并且完成不可见的状态。

摧毁状态为一个活动被摧毁了



activity中七种回调方法

1. onCreate()

2. onStart()

3. onResume()

4. onPause()

5. onStop()

6. onDestroy()

7. onRestart()

为了帮助更好的理解,android官方提供了一张活动声明周期图


活动周期的方法调用的理解

新建一个activity,重写七种方法:

public class ActivityDemo extends Activity {
    
    private static final String TAG = "ActivityDemo";
     
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        Log.e(TAG, "start onCreate");
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.e(TAG, "start onStart");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e(TAG, "start onRestart");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG, "start onResume");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.e(TAG, "start onPause");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.e(TAG, "start onStop");
    }
     
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e(TAG, "start onDestroy");
    }
}

运行这个工程,调用Logcat,可以看到执行了onCreate(),onStart(),onResume()这三个方法。可以理解为只要启动一个新的活动都会调用者三个方法

如果按back键,相当于退出当前活动,退出活动的话,程序将会关闭,相当于摧毁了程序。所以会启动onPause(),onStop(),onDestory()

如果按home键,相当于退出当前活动,不过并没有关闭。可以想想,你在手机上qq,这时候你想看小说,按home键退出qq页面打开小说页面,不过这并

不是关掉qq,相当于隐藏在后台了。如果我们在切换回qq的话可以理解为qq从停止状态又启动了。所以会执行的方法是onRestart(),onStart(),onResume()这三个方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值