Android 学习(五)——活动的生命周期

一、Acivity的生命周期

1、启动状态
2、运行状态
3、暂停状态
4、停止状态
5、销毁状态

二、生命周期方法

1、onCreate()方法
onCreate()方法是Activity创建时调用,通常做一些初始化设置。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

2、onStart()方法
onStart()方法在Activity即将可见时调用。

@Override
protected void onStart() {
    super.onStart();
}

3、onResume()方法
onResume()方法在Activity获取焦点开始与用户交互时调用。

@Override
protected void onResume() {
    super.onResume();
}

4、onPause()方法
当前Activity被其他Activity覆盖或锁屏时调用。

@Override
protected void onPause() {
    super.onPause();
}

5、onStop()方法
在Activity对用户不可见时调用。

@Override
protected void onStop() {
    super.onStop();
}

6、onDestroy()方法
在Activity销毁时调用。

@Override
protected void onDestroy() {
    super.onDestroy();
}

7、onRestart()方法
在Activity从停止状态到再次启动时调用。

@Override
protected void onRestart() {
    super.onRestart();
}
三、通过Logcat观察生命周期

新建工程文件,添加两个Activity,对分别设置两个按键进行页面跳转。在每个方法中打印log以观察Activity生命周期。

Mainactivity.java

package com.example.activity_3_2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i("MainActivitylife","========= act1 调用onCreate() =========");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("MainActivitylife","========= act1 调用onStart() =========");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("MainActivitylife","========= act1 调用onResume() =========");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("MainActivitylife","========= act1 调用onPause() =========");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("MainActivitylife","========= act1 调用onStop() =========");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("MainActivitylife","========= act1 调用onDestroy() =========");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("MainActivitylife","========= act1 调用onRestart() =========");

    }

    public void act01_btn1_jump(View view){
        Intent intent = new Intent(this,SecondActivity.class);
        startActivity(intent);
    }
}

SecondActivity.java 设置上文类似。

在Logcat中观察输出日志,可以发现程序启动后依次调用了onCreate()、onStart()、onResume()。当调用了onResume()方法之后程序不在往下进行,这是程序处于运行状态,等待用户进行交互,运行结果如下图:
image

点击“跳转到Secondactivity”,虚拟机跳转到第二个Activity,同时在Logcat中可以看到新的日志输出。

点击左下方返回键,返回第一个Activity,观察日志输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值