安卓Activity生命周期初探

首先复写Activity的7个方法,来观测这几个方法的执行顺序。

 //复写生命周期方法
    @Override
    protected void onRestart() {
    	// TODO Auto-generated method stub
    	System.out.println("debug-first-->onrestart");
    	super.onRestart();
    }
    
    @Override
    protected void onResume() {
    	// TODO Auto-generated method stub
    	System.out.println("debug-first-->onresume");
    	super.onResume();
    }
    
    @Override
    protected void onDestroy() {
    	// TODO Auto-generated method stub
    	System.out.println("debug-first-->ondestroy");
    	super.onDestroy();
    }
    
    @Override
    protected void onPause() {
    	// TODO Auto-generated method stub
    	System.out.println("first-->onpause");
    	super.onPause();
    }
    @Override
    protected void onStart() {
    	// TODO Auto-generated method stub
    	System.out.println("debug-first-->onstart");
    	super.onStart();
    }
    
    @Override
    protected void onStop() {
    	// TODO Auto-generated method stub
    	System.out.println("debug-first-->onstop");
    	super.onStop();
    }
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.out.println("debug-first-->oncreate");
        setContentView(R.layout.activity_main);
        start();
    }

使用两个Activity来切换来观测这7个方法的执行步骤,来体验Activity的生命周期。


启动第一个Activity,logcat的输出日志

debug-first-->oncreate
debug-first-->onstart
debug-first-->onresume

点击第一个Activity的按钮切换到第二个Activity:

debug-second-->oncreate
debug-second-->onstart
debug-second-->onresume
debug-first-->onstop
这里先创建启动第二个Activity,在停止第一个Activity,此时并没有销毁第一个Activity

使用系统返回键,返回到第一个Activity。

debug-second-->onpause
debug-first-->onrestart
debug-first-->onstart
debug-first-->onresume
debug-second-->onstop
debug-second-->ondestroy
执行过程:先暂停第二个Activity,然后重新启动第一个Activity,没有执行第一个Activity的onCreate方法。并且,我这台机器可能配置的虚拟设备内存小,它最后停止并结束了第二个Activity。


直接启动程序,启动第一个Activity。然后按home返回桌面,此时系统会调用:

debug-first-->onstop
暂停第一个Activity。


这个时候点击程序图标启动程序:

debug-first-->onrestart
debug-first-->onstart
debug-first-->onresume
不会重新创建Activity。(当系统资源不足,系统清除这个Activity的情况除外)


切换Activity的输出日志图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值