Intent跳转和7个生命周期

初次接触Android开发

1.掌握Activity的创建和使用Intent跳转Activity。
2.掌握活动的生命周期,以及7个生命周期方法的作用。

Intent跳转

Android软件进行跳转最简单的运用,按钮的跳转活动的运用。
本次我们初步学习Intent跳转,通过按钮利用Intent跳转,从一个页面跳转到另一个页面。
在编写Intent跳转前,我们需要在界面布局(.xml)添加一个button。

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="跳转">

完成这一步后,我们还需要一个页面SecondActivity,作为跳转的页面。
完成以上步骤后,我们可以在第一个页面开始进行我们Intent跳转的学习了。
我们需要在第一个界面先完成对按钮的定义。

button = (Button)findViewById(R.id.button);

然后我们利用==OnClickListener()==方法,定义出Intent跳转对象;

button.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
            Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
            //定义intent,从第一个界面跳转到第二个界面
                 startActivity(intent); //启动这个intent
             }
         });
    }

目前位置,我们已经完成了第一个学习任务,掌握Activity的创建和使用Intent跳转Activity。

生命周期

首先我们先了解一下什么叫生命周期。
生命周期方法为这7个:
onCreate():当Activity创建时调用,初始化设置
onStart():当Activity即将可见时调用
onResume():当Activity获得焦点时调用。
onPause();当前Activity被其他Activity覆盖或屏幕锁屏时调用
onStop():Activity对用户不可见时调用
onDestroy:Activity被销毁时调用
onReStart():Activity从停止状态到再次启动时调用
生命周期的关系,如图:
生命周期
任何软件活动都离不开这个7个生命周期。

观察生命周期

我们通过日记打印的方式观察软件的生命周期。通过观察生命周期,我们可以了解软件的运行过程。
我们在第一个进行编码:

protected void onCreate(Bundle savedInstanceState) {
Log.d("Lifecycle", "FirstActivity:onCreate被调用");}      //log为日记打印方法,log.d为打印成黑色字体
   @Override
    protected void onStart() {
        super.onStart();
        Log.d("Lifecycle", "FirstActivity:onStart被调用");}
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("Lifecycle", "FirstActivity:onResume被调用")}
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("Lifecycle", "FirstActivity:onPause被调用")}
    @Override
    protected void onStop() {
        super.onStop();
        Log.d("Lifecycle", "FirstActivity:onStop被调用");}
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("Lifecycle", "FirstActivity:onDestroy被调用");}
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("Lifecycle", "FirstActivity:onRestrat被调用");}

第二个页面进行编码:

 protected void onCreate(Bundle savedInstanceState) {
        Log.e("Lifecycle", "SecondActivity:onCreate被调用");}  //log为日记打印方法,log.d为打印成红色字体
    @Override
    protected void onStart() {
        super.onStart();
        Log.e("Lifecycle", "SecondActivity:onStart被调用");}
    @Override
    protected void onResume() {
        super.onResume();
        Log.e("Lifecycle", "SecondActivity:onResume被调用");}
    @Override
    protected void onPause() {
        super.onPause();
        Log.e("Lifecycle", "SecondActivityy:onPause被调用");}
    @Override
    protected void onStop() {
        super.onStop();
        Log.e("Lifecycle", "SecondActivity:onStop被调用");}
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("Lifecycle", "SecondActivity:onDestroy被调用");}
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("Lifecycle", "SecondActivity:onRestrat被调用");}

顺便介绍一下log日记打印:
log日记打印
我们将第一个页面的生命周期打印字体颜色为黑色,第二个页面的生命周期打印字体的颜色为红色。
我们运行App,我们进入第一个界面时:
第一个界面的日记打印
第一个界面FirstActivity被调用,FirstActivity的==Create()、onStart()和onResume()==用。
onCreate():当Activity创建时调用,初始化设置;
onStart():当Activity即将可见时调用;
onResume():当Activity获得焦点时调用。
点击跳转,从第一个页面跳转到第二个页面,
跳转后的日记打印
点击跳转按钮,页面从FirstActivity跳转到SecondActivity,第二个页面SecondActivity被调用。
第一个界面被第二个界面覆盖,故FirstActivity的onPause()被调用。
第二个界面生成,故SecondActivity的onCreate()、onStart()、onResume()被调用。
完全覆盖后,第一个界面不可见故FirstActivity的onStop()被调用。
onPause();当前Activity被其他Activity覆盖或屏幕锁屏时调用;
onStop():Activity对用户不可见时调用
随后我们返回第一个界面。
返回第一个界面
点击虚拟机返回按钮,退回第一个页面FirstActivity。
第二个界面被第一个界面覆盖,调用SecondActivity的onPause()
第一个界面重新生成,故FirstActivity的onCreate()、onReStart()和onResume()被调用。
第二个界面SecondActivity不可见后被销毁,故SecondActivity的onStop()、onDestroy被调用。
onDestroy:Activity被销毁时调用;
onReStart():Activity从停止状态到再次启动时调用。
最后我们关闭App
关闭app
退出app,第一个界面FirstActivity退出,不可见并销毁。
调用FirstActivity的onPause()、onStop()、onDestroy().
贴上完整日记:

2020-03-23 23:19:03.046 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onCreate被调用
2020-03-23 23:19:03.054 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStart被调用
2020-03-23 23:19:03.055 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onResume被调用
//启动App,第一个页面启动
2020-03-23 23:29:28.766 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onPause被调用
2020-03-23 23:29:28.820 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onCreate被调用
2020-03-23 23:29:28.824 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onStart被调用
2020-03-23 23:29:28.827 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onResume被调用
2020-03-23 23:29:29.374 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStop被调用
//跳转到第二个页面
2020-03-23 23:35:48.879 7889-7889/com.example.myapplication E/Lifecycle: SecondActivityy:onPause被调用
2020-03-23 23:35:48.894 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onRestrat被调用
2020-03-23 23:35:48.895 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStart被调用
2020-03-23 23:35:48.895 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onResume被调用
2020-03-23 23:35:49.414 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onStop被调用
2020-03-23 23:35:49.415 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onDestroy被调用
//结束第二个页面,返回第一个页面
2020-03-23 23:53:28.858 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onPause被调用
2020-03-23 23:53:29.522 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStop被调用
2020-03-23 23:53:29.523 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onDestroy被调用
//关闭app

通过本次实验,学习Intent跳转的使用,学习日记打印方法认识软件的生命周期。
Android 开发学习未完待续

原创文章 2 获赞 3 访问量 1258

猜你喜欢

转载自blog.csdn.net/genijmni/article/details/105823819