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,一经查实,立即删除!

相关文章

计算机的字符与编码集

文章目录 前言一、字符编码集的历史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;刚刚学习的…

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

一道非常典型、适合用作学习栈迁移的题目。 前言 当存在栈溢出但是溢出字符数并不多的情况下&#xff0c;可以尝试在别处构造rop链&#xff0c;通过栈迁移到目标内存区域&#xff0c;执行rop链。这里不讲栈迁移原理&#xff0c;仅是对题目的分析&#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;的机器人展示了在包括滚动、飞行和行走在内的八种不同运动模式之间切换的能力。这款机器人由加州理工学院自主…

SOLIDWORKS® 2024 新功能 - 3D CAD

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

conda 创建虚拟环境

1.为什么要创建虚拟环境 我们在做开发或者跑论文实验可能会同时进行多个任务&#xff0c;这些任务可能会依赖于不同的python环境&#xff0c;比如有的用到3.6有的用到3.7&#xff0c;这时我们创建不同版本的python&#xff0c;放到虚拟环境中给不同的任务分别提供其所需要的版本…

Git相关知识(1)

目录 1.初识Git 1.基础知识 2.centos中下载 2.基本操作 1.创建本地仓库 2.配置本地仓库 3.版本库、工作区、暂存区 4.添加文件 5.add和commit对git文件的作用 6.修改文件 7.版本回退 8.撤销修改 9.删除文件 3.分支操作 1.HEAD与分支 2.创建分支 3.删除分支 …

基于SSM的班级事务管理系统

基于SSM的班级事务管理系统 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 前台界面 登录界面 班委界面 学生界面 管理员界面 摘要 基于SSM&#xff08;Spring、Spring…

ARM-day9作业

main.c: #include "uart.h"#include "key_it.h"int main(){char c;char *s;uart4_init(); //串口初始化//中断初始化key_it_config();key3_it_config();//完成GPIO相关初始化all_led_init();//风扇初始化fs_init();//蜂鸣器初始化fmq_init();while(1){…

矿区井下智慧用电安全监测解决方案

一、背景 矿区井下作业具有复杂的环境和较高的危险性&#xff0c;对于用电安全的要求尤为严格。传统的管理模式和监测方法往往无法实时、准确地掌握井下用电情况&#xff0c;对安全隐患的排查与预防存在一定局限性。因此&#xff0c;引入智慧用电安全监测解决方案&#xff…

黑马JVM总结(三十二)

&#xff08;1&#xff09;类加载器-线程上下文1 使用的应用程序类加载器来完成类的加载&#xff0c;不是用的启动类加载器&#xff0c;jdk在某些情况下要打破&#xff0c;双亲委派的模式&#xff0c;有时候需要调用应用程序类加载器来完成类的加载&#xff0c;否则有些类它是找…

YB4058是一款经济高效、完全集成的高输入电压单电池锂离子电池充电器

高输入电压充电器支持I2C和OVP保护 概述&#xff1a; YB4058是一款经济高效、完全集成的高输入电压单电池锂离子电池充电器。充电器使用了锂离子电池所需的CC/CV充电曲线。充电器可接受高达27V的输入电压&#xff0c;但当输入电压超过OVP时禁用阈值&#xff0c;通常为6.8V&am…

倒置边框半径卡片

效果展示 CSS 知识点 实现多曲面的思路 实现整体布局 <div class"card"><div class"img_box"></div><div class"content"><div class"price"></div></div> </div>.card {position…

Idea执行Pom.xml导入jar包提示sun.misc.BASE64Encoder jar找不到---SpringCloud工作笔记197

奇怪之前都是好好的,这个是因为,jdk的版本不对,重新打开以后自动被选择成jdk11了...记录一下 原因是从jdk9的时候,这个jar包已经被删除了,所以会报错,如果你用的是jdk自带的这个jar包就会报错,那么还可以,修改,不让他用jdk的,让他用 用org.apache.commons.codec.binary.Base64…

EMC Unity存储(VNXe) service Mode和Normal Mode的一些说明

本文介绍下EMC unity存储设备&#xff08;也包含VNXe存储设备&#xff09;的两种工作模式&#xff1a; Service mode&#xff1a;也叫做rescue mode&#xff0c;存储OS工作不正常或者有其他故障&#xff0c;就会进入这个模式&#xff0c;无法对外提供服务Normal mode&#xff…