A页面启动B页面的 Activity 的生命周期

生命周期描述的是一个类 从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法..

在这个过程中 会针对不同的生命阶段会调用不同的方法.

Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,

这些回调方法包括:onCreate onDestroy onStop onStart onResume onPause

其实这些方法都是两两对应的,

onCreate创建与onDestroy销毁;

onStart可见与onStop不可见;

onResume可编辑(即焦点)与onPause;

这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢?

答案就是:

在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法;

如果被onDestroy了,则是调用onCreate方法。

还有两个方法 onPostResume() onPostCreate()这两个生命周期的方法.

onCreate(),方法之后调用onPostCreate()



 
 
public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        Log.d (TAG, "onCreate: ");

    }
    public void to(View v){
        Intent intent =new Intent (this,Main2Activity.class);
        startActivity (intent);
    }

    @Override
    protected void onRestart () {
        super.onRestart ();
        Log.d (TAG, "onRestart: ");
    }

    @Override
    protected void onStart () {
        super.onStart ();
        Log.d (TAG, "onStart: ");
    }

    @Override
    protected void onResume () {
        super.onResume ();
        Log.d (TAG, "onResume: ");
    }

    @Override
    protected void onPause () {
        super.onPause ();
        Log.d (TAG, "onPause: ");
    }

    @Override
    protected void onStop () {
        super.onStop ();
        Log.d (TAG, "onStop: ");
    }

    @Override
    protected void onDestroy () {
        super.onDestroy ();
        Log.d (TAG, "onDestroy: ");
    }
}
MainActivity 会走以下方法


从 MainActivity 开启Main2Activity会走以下方法(MainActivity没有调用finish();)
 
以下是Main2Activity开启MainActivity的生命周期.
 

  
  
public class Main2Activity extends AppCompatActivity implements View.OnClickListener {

    private static final String TAG = "Main2Activity";
    private Button btn_edit;
    private Button btn_back;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main2);
        Log.d (TAG, "onCreate: ");
        initView ();

    }

    private void initView () {
        btn_edit = (Button) findViewById (R.id.btn_edit);
        btn_back = (Button) findViewById (R.id.btn_back);

        btn_edit.setOnClickListener (this);
        btn_back.setOnClickListener (this);
    }

    @Override
    public void onClick (View v) {
        switch (v.getId ()) {
            case R.id.btn_edit:
                finish ();
                break;
            case R.id.btn_back:
                startActivity (new Intent (Main2Activity.this, MainActivity.class));
                break;
        }
    }

    @Override
    protected void onRestart () {
        super.onRestart ();
        Log.d (TAG, "onRestart: ");
    }

    @Override
    protected void onStart () {
        super.onStart ();
        Log.d (TAG, "onStart: ");
    }

    @Override
    protected void onResume () {
        super.onResume ();
        Log.d (TAG, "onResume: ");
    }

    @Override
    protected void onPause () {
        super.onPause ();
        Log.d (TAG, "onPause: ");
    }

    @Override
    protected void onStop () {
        super.onStop ();
        Log.d (TAG, "onStop: ");
    }

    @Override
    protected void onDestroy () {
        super.onDestroy ();
        Log.d (TAG, "onDestroy: ");
    }
}
Main2Activity开启MainActivity 调用Finish()的 生命周期;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值