Activity的生命周期

    一、Activity大致分为以下四种状态:
         运行状态:当前Activity位于前台,用户可见,可以获得焦点。
         暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。
         停止状态:该Activity不可见,失去焦点。
         销毁状态:该Activity结束,或Activity所在的进程被结束。
 图为生命周期以及相关回调方法:

 

二、方法解读:
        onCreate(Bundle savedStatus):创建Activity时被回调,只在创建时调用一次,用于对该Activity执行初始化。
        onStart( ):启动Activity时被回调。
        onRestart( ):重新启动Activity时被回调。
        onResume( ):恢复Activity时被回调,在onStart()方法后一定会回调此方法。
        onPause( ):暂停Activity被回调。例如:用户正在玩游戏,此时有电话打进来,那么我们就需要把游戏暂停,并且保存该游戏的进行状态。
        onStop( ):停止Activity时被回调。
        onDestroy( ):销毁Activity时被回调。
三、示例:
       创建一个Activity实现所有生命周期回调方法:布局中只有两个按钮,一个按钮监听跳转Activity,另一个退出Activity     
public class LifeOfActivity extends Activity{
final String TAG="执行的方法是:";
private Button btn_start,btn_finish;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lifeofactivity);
//当执行onCreate方法时,输出此日志(创建Activity回调)
Log.i(this.TAG,"-创建Activity回调-onCreate--");
//找到按钮
this.btn_start= (Button) findViewById(R.id.btn_start);
this.btn_finish= (Button) findViewById(R.id.btn_finishh);
//为按钮设置监听:
this.btn_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(LifeOfActivity.this,MainActivity.class);
startActivity(intent);
}
});
this.btn_finish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LifeOfActivity.this.finish();
}
});
}

@Override
protected void onStart() {
super.onStart();
//当执行onStart方法时,输出此日志(启动Activity时被回调)
Log.i(this.TAG,"-启动Activity时被回调-onStart--");

}

@Override
protected void onResume() {
super.onResume();
//当执行onResume方法时,输出此日志(恢复Activity时被回调)
Log.i(this.TAG,"-恢复Activity时被回调-onResume--");
}

@Override
protected void onRestart() {
super.onRestart();
//当执行onRestart方法时,输出此日志(重新启动Activity时被回调)
Log.i(this.TAG,"-重新启动Activity时被回调-onRestart--");
}

@Override
protected void onPause() {
super.onPause();
//当执行onPause方法时,输出此日志(暂停Activity被回调)
Log.i(this.TAG,"-暂停Activity被回调-onPause--");
}

@Override
protected void onStop() {
super.onStop();
//当执行onStop方法时,输出此日志(停止Activity时被回调)
Log.i(this.TAG,"-停止Activity时被回调-onStop--");
}

@Override
protected void onDestroy() {
super.onDestroy();
//当执行onDestroy方法时,输出此日志(销毁Activity时被回调)
Log.i(this.TAG,"-销毁Activity时被回调-onDestroy--");
}
}
 
 
总结:
         启动Activity时执行: onCreate、 onStart、onResume三个方法
         重新启动Activity时执行: onRestart、onStart、onResume三个方法
         当跳转到另一个Activity先后执行: onPause, onStop方法
         当退出Activity时会先后执行:    onPause、 onStop、onDestroy三个方法
 
         当回调onStart方法后,onResume方法也会被调用,从上面例子也可以简单佐证。
    
 
 
    

转载于:https://www.cnblogs.com/xiahaixing/p/5611105.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值