Android Studio展示Activty生命周期

前言

        本文章以及之后文章的程序版本使用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中的注册部分加一句风格设定就行

<activityandroid: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() {@Overridepublic void onClick(View view) {//点击事件Button button = (Button) view;   //把点击获得的id信息传递给buttontry {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");}}};@Overrideprotected 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 创建 初始化");}@Overrideprotected void onStart() {super.onStart();Log.e(TAG,"onStart 显示 不能交互");}@Overrideprotected void onResume() {super.onResume();Log.e(TAG,"onResume 可交互");}@Overrideprotected void onRestart() {super.onRestart();Log.e(TAG,"onRestart 重新启动");}@Overrideprotected void onPause() {super.onPause();Log.e(TAG,"onPause 暂停(可见,不可操作)");}@Overrideprotected void onStop() {super.onStop();Log.e(TAG,"onStop 停止(不可见)");}@Overrideprotected void onDestroy() {super.onDestroy();Log.e(TAG,"onDestroy  销毁");}@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {super.onRestoreInstanceState(savedInstanceState);Log.e(TAG,"onRestoreInstanceState 获取保存数据");}@Overrideprotected void onSaveInstanceState(Bundle savedInstanceState) {super.onSaveInstanceState(savedInstanceState);Log.e(TAG,"onSaveInstanceState 销毁时保存数据");}}
<!--使用返回按钮和去往主页面按钮,以及手机的返回。观察日志输出,ps:去往主界面后再按一下返回看看-->

Activity生命周期

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

Activity生命周期展示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/104452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pxb 使用物理备份恢复数据库

开源软件 Percona Xtrabackup 可以用于对数据库进行备份恢复&#xff0c;本文为您介绍使用 XtraBackup 工具&#xff0c;将 MySQL 物理备份文件恢复至其他主机上的自建数据库。 注意 如果使用透明加密或 Instant DDL 功能&#xff0c;则无法使用物理备份在自建系统上进行恢复…

sql 注入(4), 盲注

sql 注入, 盲注 盲注适合在页面没有任何回显时使用. 测试页面有变化, 但是没有显示任何异常错误等信息. 情景: url: http://192.168.112.200/security/read.php?id1 服务器数据库名: learn一, boolean盲注 # 盲注可能需要一个一个字符去试探, 字符串处理函数经常会用到. 比…

命令行启动android模拟器

有时候不想打开android studio就能方便的启动模拟器&#xff0c;探索一番后发现可以通过命令行来启动&#xff0c;方便快捷。 环境准备 首先安装好android studio&#xff0c;android sdk&#xff0c;从android studio中安装好模拟器。 命令启动 如果直接在终端输入emulato…

计算机的字符与编码集

文章目录 前言一、字符编码集的历史1.ASCII码2.Extended ASCII码3.字符编码集的国际化 二、中文编码集 前言 今天给大家介绍计算机的字符与编码集&#xff0c;分为两部分&#xff1a;字符编码集的历史、中文编码集。 一、字符编码集的历史 这部分包含三个板块内容&#xff1a…

【通信系列 5 -- HTTPS 介绍】

文章目录 1.1 HTTPS链接网址1.1.1 HTTPS 产生背景1.1.2 HTTPS工作内容1.1.3 SSL/TLS1.1.4 TLS 的命名规范1.1.5 TLS 加密算法1.1.6 分组模式1.1.7 摘要算法1.1.8 非对称加密1.1.9 CA认证 1.2 openssl1.2.1 RSA 签名验签 1.1 HTTPS链接网址 HTTP 是一种 超文本传输协议(Hyperte…

DOCKER本地仓库

概述 随着docker的应用越来越多&#xff0c;安装部署越来越方便&#xff0c;批量自动化的镜像生成和发布都需要docker仓库的本地化应用。 试用了docker的本地仓库功能&#xff0c;简单易上手&#xff0c;记录下来以备后用。 环境 centos&#xff1a;CentOS release 7.0 (F…

CANoe创建仿真工程

CANoe创建仿真工程 写在前面仿真工程的创建创建工程添加CAN数据库添加系统变量创建面板创建网络节点为节点添加代码工程运行测试总结 写在前面 Canoe的安装不是特别方便&#xff0c;我是参加了松勤的培训课程&#xff0c;不仅需要安装软件还需要安装驱动&#xff0c;刚刚学习的…

[程序人生]常用的Linux命令简称与全称

常用的Linux命令简称与全称 引言 学习Linux系统操作的时候&#xff0c;那些命令很难记&#xff0c;让人头大。 本文给出Linux系统中常用的命令简称与全称。 正文 以下是常用的Linux命令简称与全称&#xff1a; pwd (print working directory)&#xff1a;显示当前工作目录的…

【PWN · 栈迁移】[CISCN 2019东南]PWN2

一道非常典型、适合用作学习栈迁移的题目。 前言 当存在栈溢出但是溢出字符数并不多的情况下&#xff0c;可以尝试在别处构造rop链&#xff0c;通过栈迁移到目标内存区域&#xff0c;执行rop链。这里不讲栈迁移原理&#xff0c;仅是对题目的分析&#xff0c;适合对栈迁移有初步…

【stm32】外部中断接口函数

1、外部中断回调函数 2、外部中断通用处理函数

React闭包

声明 本文将深入探讨React与闭包之间的关系。 我们将首先介绍React和闭包的基本概念&#xff0c;然后详细解释React组件中如何使用闭包来处理状态和作用域的问题。 通过本文的阅读&#xff0c;你将对React中闭包的概念有更深入的理解&#xff0c;并能够在开发React应用时更好地…

MySQL InnoDB存储引擎的缓冲池和内存性能优化

MySQL数据库的InnoDB存储引擎详细记录了其缓冲池(Buffer Pool)和内存(Memory)的统计信息&#xff0c;这些信息在分析数据库性能和进行优化时非常重要。这些信息可以通过语句以下查询获取。 SHOW ENGINE INNODB STATUS; 本文将对这些统计信息进行介绍&#xff0c;并给出优化建…

eventfd

1. #include <sys/eventfd.h> int eventfd(unsigned int initval, int flags); //创建eventfd 参数含义&#xff1a; initval&#xff1a;创建eventfd时它所对应的64位计数器的初始值&#xff1b; flags&#xff1a;eventfd文件描述符的标志&#xff0c;可由三种选项组…

WPF中的多重绑定

MultiBinding 将会给后端传回一个数组, 其顺序为绑定的顺序. 例如: <DataGridMargin"10"AutoGenerateColumns"False"ItemsSource"{Binding Stu}"><DataGrid.Columns><DataGridTextColumn Binding"{Binding Id}" Header…

bash一行输入,多行回显demo脚本

效果图&#xff1a; 脚本&#xff1a; #!/bin/bash # 定义一个变量&#xff0c;用来存储输入的内容 input"" # 定义一个变量&#xff0c;用来存储输入的字符 char""# 为了让read能读到空格键 IFS_store$IFS IFS# 提示内容&#xff0c;在while循环中也有&a…

three.js入门 —— 实现第一个3D案例

前言&#xff1a; three.js入门&#xff0c;根据文档实现第一个3D案例 效果图&#xff1a; 代码实现&#xff1a; const scene new THREE.Scene();//创建一个长方体几何对象Geometryconst geometry new THREE.BoxGeometry(100, 100, 100);//创建一个网络基础材质的材质对象…

机器人革命:脑洞大开的前沿机器人技术!

原创 | 文 BFT机器人 01 由生物启发的多模式移动形态机器人 在一个不断运动的世界中&#xff0c;一种新开发的名为M4&#xff08;多模式移动形态机器人&#xff09;的机器人展示了在包括滚动、飞行和行走在内的八种不同运动模式之间切换的能力。这款机器人由加州理工学院自主…

Eclipse中常用的操作单词

Eclipse中常用的操作单词 Existing Project into Workspace 现有的工程引入工作空间(加载工程) File 文件 New 新建 Project 工程 Folder 文件夹 Import 引入(加载&导入) Run As 运行 Applicatio…

Java系列之:深入理解设计模式

Java系列之:深入理解设计模式 一、设计模式相关技术文章二、设计原则三、设计模式概念四、设计模式的分类五、创建性模式六、创建性模式-工厂方法模式七、创建性模式-抽象工厂模式八、创建性模式-构建器模式九、面向对象设计-结构性模式十、结构性模式-适配器模式十一、结构性…

SOLIDWORKS® 2024 新功能 - 3D CAD

1、 先前版本的兼容性 • 利用您订阅的 SOLIDWORKS&#xff0c;可将您的 SOLIDWORKS 设计作品保存为旧版本&#xff0c;与使用旧版本 SOLIDWORKS 的供应商无缝协作。 • 可将零件、装配体和工程图保存为新版本前两年之内的SOLIDWORKS 版本。 优点&#xff1a; 即使其他用户正…