Activity的基本操作+生命周期

生命周期参考b站视频:第八讲:Activity生命周期演示

一、基本操作

Activity(活动)是一种展示型组件,它主要用于实现应用功能逻辑,并通过界面 显示数据接收用户输入
一个应用程序可以包含零个或多个活动。没有活动的应用程序,用户将无法看到程序界面,这种应用程序通常在后台运行,不涉及用户交互。
在这里插入图片描述

二、生命周期

2.0 生命周期的介绍

Activity的生命周期指Activity从创建到被销毁的整个过程。
在一个生命周期内,Activity可能存在多种状态。
深入了解Activity的生命周期,有助于更合理管理应用程序资源,设计出效率更高的应用。

Activity生命周期包括创建、可见、获取焦点、失去焦点、不可见、重新可见、销毁等环节,每个环节Activity都定义了相关的回调方法,具体如下:

  • onCreate():Activity创建时调用,通常做一些初始化设置
  • onStart():Activity即将可见时调用
  • onResume():Activity获取焦点时调用
  • onPause():当前Activity被其他Activity覆盖或屏幕锁屏时调用
  • onStop():Activity对用户不可见时调用
  • onDestroy():Activity销毁时调用
  • onRestart():Activity从停止状态到再次启动时调用

记住这张图:
在这里插入图片描述

具体操作

2.1 新建LifeActivity项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 修改第一个页面(xml配置 和 MainActivity)

activity_main.xml:

在这里插入图片描述
在这里插入图片描述

MainActivity:

在这里插入图片描述

2.3 新建第二个页面(SecondActivity 和 xml 配置)

SecondActivity:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

activity_second.xml:

在这里插入图片描述

2.4 在AndroidManifest.xml 注册 SecondActivity!!!!!!!!!!!!!!

在这里插入图片描述

2.5 运行 (至此实现了页面跳转)

在这里插入图片描述
在这里插入图片描述

2.6 在两个Activity中编写Log

在这里插入图片描述

在这里插入图片描述

2.7 运行(在logcat中查看)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.8 实现代码(最终)

MainActivity
package com.situ.lifeactivity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;


public class MainActivity extends AppCompatActivity {

    public static final String TAG="MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        show("onCreate被调用");
        setContentView(R.layout.activity_main);
    }
    @Override
    protected void onStart() {
        super.onStart();
        show("onStart被调用");
    }
    @Override
    protected void onResume() {
        super.onResume();
        show("onResume被调用");
    }
    @Override
    protected void onPause() {
        super.onPause();
        show("onPause被调用");
    }
    @Override
    protected void onStop() {
        super.onStop();
        show("onStop被调用");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        show("onDestroy被调用");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
       show("onRestart被调用");
    }

    private void show(String msg){
        String clsName=this.getClass().getName();
        Log.d(TAG,clsName+"---"+msg);
    }

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




SecondActivity
package com.situ.lifeactivity;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

/**
 * Created by Song2 on 2021/12/22.
 */

public class SecondActivity extends AppCompatActivity {

    public static final String TAG="SecondActivity";
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        show("onCreate被调用");
        setContentView(R.layout.activity_second);

    }
    @Override
    protected void onStart() {
        super.onStart();
        show("onStart被调用");
    }
    @Override
    protected void onResume() {
        super.onResume();
        show("onResume被调用");
    }
    @Override
    protected void onPause() {
        super.onPause();
        show("onPause被调用");
    }
    @Override
    protected void onStop() {
        super.onStop();
        show("onStop被调用");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        show("onDestroy被调用");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        show("onRestart被调用");
    }

    private void show(String msg){
        String clsName=this.getClass().getName();
        Log.d(TAG,clsName+"---"+msg);
    }


}




activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.situ.lifeactivity.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点我调转"
        android:onClick="clickTurnOther"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</LinearLayout>




activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.situ.lifeactivity.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点我调转"
        android:onClick="clickTurnOther"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</LinearLayout>

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说的白是什么白_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值