多个Activity交互的生命周期

首先,我们创建一个新的android module。然后把与生命周期相关的7个方法添加到java文件中,代码如下:

public class MainActivity extends Activity {

    private String test="TagTest";
    private Button second;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        second= (Button) findViewById(R.id.btn);
        Log.d(test,"MainActivity.onCreate");
        second.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });
    }



    protected void onStart(){
        super.onStart();
        Log.d(test,"MainActivity.onStart");
    }
    protected void onResume(){
        super.onResume();
        Log.d(test,"MainActivity.onResume");
    }
    protected void onPause(){
        super.onPause();
        Log.d(test,"MainActivity.onPause");
    }
    protected void onStop(){
        super.onStop();
        Log.d(test,"MainActivity.onStop");
    }
    protected void onDestroy(){
        super.onDestroy();
        Log.d(test,"MainActivity.onDestroy");
    }
    protected void onRestart(){
        super.onRestart();
        Log.d(test,"MainActivity.onRestart");
    }
}

同时,我们还在MainActivity中添加了一个按键,用来跳转到SecondActivity中。
接下来我们再创建一个新的Activity,命名为SecondActivity。在创建新的Activity后先到AndroidManifest添加SecondActivity,然后同样在SecondActivity中添加进与生命周期相关的7个方法。代码如下:

public class SecondActivity extends Activity{

    private String test="TagTest";

    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_layout);
        Log.d(test,"SecondActivity.onCreate");
    }

    protected void onStart(){
        super.onStart();
        Log.d(test,"SecondActivity.onStart");
    }
    protected void onResume(){
        super.onResume();
        Log.d(test,"SecondActivity.onResume");
    }
    protected void onPause(){
        super.onPause();
        Log.d(test,"SecondActivity.onPause");
    }
    protected void onStop(){
        super.onStop();
        Log.d(test,"SecondActivity.onStop");
    }
    protected void onDestroy(){
        super.onDestroy();
        Log.d(test,"SecondActivity.onDestroy");
    }
    protected void onRestart(){
        super.onRestart();
        Log.d(test,"SecondActivity.onRestart");
    }

}

接下来运行程序,在Logcat界面输出程序运行的状态,如下图:
这里写图片描述
首先会先运行MainActivity中的onCreate()、onStart()、onResume()方法,此时程序就会处于可见状态。接着按下按键跳到SecondActivity,首先是MainActivity先执行onPause(),此时Activity变为部分可见状态,然后SecondActivity执行完onCreate()、onStart()、onResume()三个方法编程可见状态,MainActivity就执行onStop()方法变成不可见状态。当按下返回键后退出SecondActivity,就执行SecondActivity的onPause()和onStop()方法。
以下为官方提供的生命周期图。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值