Android Studio展示Activty生命周期

news/2024/7/16 7:51:40 标签: android studio, android, ide

前言

        本文章以及之后文章的程序版本使用Android Studio 2022.3.1 Patch 1 版本编辑,使用语言为java,最低支持API 27 Android 8.1,构建工具版本如下:

 本文章主要是介绍Activty跳转和删除,以备后续使用,所以就不放apk文件了,源码如下:

源码文件下载

 源码其实就几个按钮,主要是看日志输出,源码免费下载,可以自己下载下来看看

这里就说几个小点,

创建新的Activty

首先是创建新的Activty,由于自己创建文件需要建立Activty的xml,对应的java文件,以及在AndroidManifest.xml中注册,所以一开始还是建议使用自动创建,位置如下:

点进去后和创建项目相似的操作, 

汉化插件

 中文是因为汉化插件,截至文章发布日2023年的Android Studio还不兼容,我用的是2022年版,汉化插件是这个:

Activity注册为对话框 

在AndroidManifest.xml中的注册部分加一句风格设定就行

<activity
    android:name=".About"
    android:exported="false"
    android:theme="@style/Base.Theme.AppCompat.Dialog"/>

 打开新的Activity

 MainActivity是当前Activity,Play是要打开的Activity

Intent intent = new Intent();
intent.setClass(MainActivity.this, Play.class);
startActivity(intent);

关闭当前 Activity

使用finish()可以关闭当前Activity

finish();

这里展示一下Play的java代码,布局随意放就行,其他几个类似,

package com.example.multipleactivity;

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

import androidx.appcompat.app.AppCompatActivity;

public class Play extends AppCompatActivity {
    private static final String TAG = "i道iPlay";
    Button Main, Back;
    private final View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {//点击事件
            Button button = (Button) view;   //把点击获得的id信息传递给button
            try {
                if(button.getId() == R.id.button_goto_Main){
                    Intent intent = new Intent();
                    intent.setClass(Play.this, MainActivity.class);
                    startActivity(intent);
                } else if(button.getId() == R.id.button_goto_Back){
                    finish();
                }else {
                    Log.e(TAG, "未知按钮组件调用");
                }
            } catch (Exception e) {
                Log.e(TAG, "main,error");
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_play);
        Main = findViewById(R.id.button_goto_Main);
        Back = findViewById(R.id.button_goto_Back);
        Main.setOnClickListener(onClickListener);
        Back.setOnClickListener(onClickListener);
        Log.e(TAG,"onCreate 创建 初始化");
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.e(TAG,"onStart 显示 不能交互");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG,"onResume 可交互");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e(TAG,"onRestart 重新启动");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.e(TAG,"onPause 暂停(可见,不可操作)");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.e(TAG,"onStop 停止(不可见)");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e(TAG,"onDestroy  销毁");
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        Log.e(TAG,"onRestoreInstanceState 获取保存数据");
    }

    @Override
    protected void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        Log.e(TAG,"onSaveInstanceState 销毁时保存数据");
    }

}
<!--使用返回按钮和去往主页面按钮,以及手机的返回。观察日志输出,ps:去往主界面后再按一下返回看看-->

Activity生命周期

 给你们看看日志,其实挺多细节自己上手试试才能知道

ideo-box">

Activity生命周期展示

 


http://www.niftyadmin.cn/n/5082146.html

相关文章

二、DMSP/OLS夜光数据校正之饱和校正

一、前言 首先需要将DMSP/OLS夜光数据下载,那么这里方便大家,可以直接私信我获得DMPS/OLS和NPP/VIIRS夜光原始数据,以百度云网盘形式分享给大家。 当把34期DMSP/OLS夜光数数据下载至电脑之后,解压后可以看到如下图的数据。 选择稳定平均灯光数据作为我们研究数据,也就是F…

记一次python 正则表达式

1 正则一般用到的所有字符&#xff0c;具体每个字符的用法自行百度 2 案例&#xff0c;理解了这个案例基本上没问题了&#xff0c;4种格式的字符串&#xff0c;都能提取生日信息 import reline "xxx出生于2001年6月1日" line "xxx出生于2001/6/1" line…

ts中的元组是什么有什么用

TypeScript中的元组是一种表示具有固定数量和类型的有序元素集合的数据类型。一个元组可以包含不同类型的数据&#xff0c;例如&#xff0c;一个元组可以包含字符串、数字和布尔值。 元组在TypeScript中的用途包括&#xff1a; 声明函数返回值的类型&#xff0c;特别是当函数返…

tomcat 问题

一、start up.bat 闪退 在命令窗口run 看看是缺少了哪个环境变量 二、控制台输出乱码 logging.properties 底部添加 java.util.logging.ConsoleHandler.encoding GBK 三、缓存不足 context.xml配置 <Resources cachingAllowed"false" cacheMaxSize"100…

idea 启动项目报错 Command line is too long

1.idea 启动报错 Command line is too long&#xff0c;启动报错信息&#xff1a;Error running ‘Application‘: Command line is too long. 2.如何解决&#xff1f; 1&#xff09;idea打开一个项目。 2.打开项目下的*.idea* 文件夹下的 workspace.xml 文件。 3.在<co…

飞书应用机器人文件上传

背景&#xff1a; 接上一篇 flask_apscheduler实现定时推送飞书消息&#xff0c;当检查出的异常结果比较多的时候&#xff0c;群里会有很多推送消息&#xff0c;一条条检查工作量会比较大&#xff0c;且容易出现遗漏。   现在需要将定时任务执行的结果记录到文件&#xff0c;…

MDK自动生成带校验带SVN版本号的升级文件

MDK自动生成带校验带SVN版本号的升级文件 获取SVN版本信息 确保SVN安装了命令行工具&#xff0c;默认安装时不会安装命令行工具 编写一个模板头文件 svn_version.temp.h, 版本号格式为 1_0_0_SVN版本号 #ifndef __SVN_VERSION_H #define __SVN_VERSION_H#define SVN_REVISIO…

C++算法:最少翻转操作数

题目 给你一个整数 n 和一个在范围 [0, n - 1] 以内的整数 p &#xff0c;它们表示一个长度为 n 且下标从 0 开始的数组 arr &#xff0c;数组中除了下标为 p 处是 1 以外&#xff0c;其他所有数都是 0 。 同时给你一个整数数组 banned &#xff0c;它包含数组中的一些位置。b…