Android Studio展示Activty生命周期

news2024/11/14 17:14:02

前言

        本文章以及之后文章的程序版本使用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生命周期

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

Activity生命周期展示

 

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

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

相关文章

百度SEO优化的特点(方式及排名诀窍详解)

百度SEO优化的特点介绍&#xff1a; 百度SEO优化是指对网站进行优化&#xff0c;使其在百度搜索引擎中获得更好的排名&#xff0c;进而获取更多的流量和用户。百度SEO优化的特点是综合性强、效果持久、成本低廉、投资回报高。百度的搜索算法不断更新&#xff0c;所以长期稳定的…

酷开会员 | 探索火星奥秘,跟着酷开系统揭开火星神秘面纱!

酷开会员 | 探索火星奥秘&#xff0c;跟着酷开系统揭开火星神秘面纱&#xff01; 地球&#xff0c;是我们的母星。人类脚踏这颗星球坚实的大地&#xff0c;倚靠她的供给繁衍生息。然而从整个太阳系中看去&#xff0c;这个人类唯一的家园&#xff0c;也不过只是一粒悬浮在阳光中…

3.3 使用广播信道的数据链路层

思维导图&#xff1a; 3.3.1 局域网的数据链路层 ### 3.3 使用广播信道的数据链路层 #### 简介 - 广播信道支持一对多通信。 - 局域网技术在20世纪70年代末兴起&#xff0c;现在在计算机网络中占有主导地位。 #### 3.3.1 局域网的数据链路层 **局域网的特点&#xff1a;** 1…

RFID技术在锂电池生产线自动化应用

随着电动汽车和能源储存系统市场的不断扩大&#xff0c;锂离子电池作为其核心部件&#xff0c;以其高能量密度、长寿命等优点成为了主流选择。而对于锂电池智能化、高效化生产有着更高的要求&#xff0c;RFID技术的使用&#xff0c;将大幅度提高锂电池的生产产能&#xff0c;从…

高防CDN之所以强大的原因

高防CDN&#xff0c;这不仅仅是一个网络安全解决方案&#xff0c;它是您的在线堡垒&#xff0c;守护您的网站免受网络不法分子的侵袭。它究竟有何神奇之处&#xff0c;使它如此引人瞩目呢&#xff1f; 网络安全铠甲&#xff1a; 高防CDN是您的磅礴网络安全铠甲。它能够抵御多种…

MYSQL的日志管理

MySQL中有几种类型的日志记录&#xff0c;分别用于记录不同的操作和事件。以下是MySQL中常见的日志类型 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息。当数据…

Unity头发飘动效果

Unity头发飘动 介绍动作做头发飘动头发骨骼绑定模拟物理组件 UnityChan插件下载UnityChan具体用法确定人物是否绑定好骨骼节点&#xff08;要做的部位比如头发等&#xff09;给人物添加SpringManager骨骼管理器给骨骼节点添加SpringBone这里给每个头发骨骼都添加上SpringBone。…

LCD12864驱动开发

目录 一、概述 二、方框图 三、模块接口说明 1、串口接口管脚信号 2、并行接口 四、模块主要硬件构成说明 1、RS&#xff0c;R/W配4种模式&#xff1a; 2、E信号 五、指令说明 六、读写时序图 6.1 数据传输过程 6.2、时序图 6.3、串口读写时序 七、交流参数 八、软件…

CrossOver2024中文免费版虚拟机软件

苹果笔记本不能用windows吗&#xff0c;让苹果电脑支持win系统&#xff0c;是很多苹果用户关心的问题。苹果笔记本是指使用macOS操作系统的苹果公司生产的笔记本电脑&#xff0c;而windows是微软公司开发的另一种操作系统。两者有什么区别&#xff0c;如何在苹果笔记本上安装和…

技术分享 | Web测试方法与技术之CSS讲解

CSS 就是层叠样式表&#xff08;Cascading Style Sheets&#xff09;&#xff0c;定义如何显示 HTML 元素。HTML 元素的样式通常存储在层叠样式表中。 为什么要使用CSS 使用 CSS 可以定义 HTML 元素显示的样式&#xff0c;其实是为了解决内容与表现分离的问题。通过 CSS 可以…

Spring Boot中的Redis自动配置与使用

Spring Boot中的Redis自动配置与使用 Redis是一种高性能的开源内存数据库&#xff0c;常用于缓存、会话管理和消息队列等场景。Spring Boot提供了自动配置来简化在Spring应用程序中使用Redis的过程。本文将介绍Spring Boot中的Redis自动配置是什么以及如何使用它来轻松集成Red…

【漏洞复现】Nacos系列多漏洞复现

漏洞描述 nacos是阿里巴巴的一个开源项目,旨在帮助构建云原生应用程序和微服务平台 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任…

vue自定义防抖指令

main.js中 Vue.directive(throttle, {bind: (el, binding) > {let throttleTime binding.value; // 防抖时间if (!throttleTime) { // 用户若不设置防抖时间&#xff0c;则默认2sthrottleTime 2000;}let cbFun;el.addEventListener(click, event > {if (!cbFun) { // …

Unity基础课程之物理引擎4-用于射击或者点击消除的射线检测方法

业务逻辑 这段代码实现了一个功能&#xff0c;当玩家按下鼠标左键或按下Q键时&#xff0c;从游戏主角的位置沿着主角的前方方向发射一条射线。如果射线碰撞到了具有Collider触发或碰撞器的游戏物体&#xff0c;则销毁该游戏物体。 程序逻辑 程序的逻辑如下&#xff1a; 1. 在…

Vue中对路由的进阶学习

路由进阶 文章目录 路由进阶1、路由的封装抽离2、声明式导航2.1、导航链接2.2、高亮类名2.3、跳转传参2.4、动态路由参数可选符 3、Vue路由--重定向4、Vue路由--4045、Vue路由–模式设置6、编程式导航6.1、基本跳转6.2、跳转传参 路由基础入门 1、路由的封装抽离 问题&#x…

智慧办公数据可视化大屏设计(数据可视化)、大数据、数据大屏、办公数据大屏、办公数据

本次分享的作品是用软件Axure8.0&#xff08;兼容9和10&#xff09;制作的智慧办公数据进行的可视化大屏设计&#xff0c;主要是针对办公的综合数据、工位数据、会议室数据、访客数据、能耗数据以及设备智控数据进行可视化数据分析。 1、综合分析:对办公室的整体数据、空气质量…

Python数据分析实战-实现Mann-Whitney U检验(附源码和实现效果)

实现功能 使用scipy.stats模块中的mannwhitneyu函数来实现Mann-Whitney U检验&#xff0c;该检验用于比较两个独立样本的分布是否有显著差异。 实现代码 from scipy.stats import mannwhitneyu# 两个独立样本的数据 group1 [1, 2, 3, 4, 5] group2 [6, 7, 8, 9, 10]# 执行…

如何压缩视频?视频压缩变小方法汇总

视频是我们日常生活中不可或缺的一部分&#xff0c;但视频文件往往会占用大量存储空间&#xff0c;这在传输和分享过程中可能成为一个瓶颈。 为了解决这一问题&#xff0c;我们可以通过压缩的方式减小视频大小&#xff0c;视频压缩是指在保证视频质量的前提下&#xff0c;通过…

2023年中国胆道镜市场规模及行业现状,一次性胆道镜市场初具规模[图]

胆道镜是为胰胆管的内窥镜检查和内窥镜手术设计的医用光学内窥镜。肝胆管结石是我国常见的一种胆道疾病&#xff0c;病情较为复杂&#xff0c;且复发率较高&#xff0c;手术质量续期较高&#xff0c;胆道镜已由硬质胆道镜、纤维胆道镜&#xff0c;发展到目前的电子胆道镜。 胆…

SettingsView/设置页 的实现

1. 创建设置视图 SettingsView.swift import SwiftUI/// 设置页面 struct SettingsView: View {/// 环境变量&#xff0c;呈现方式&#xff1a;显示或者关闭Environment(\.presentationMode) var presentationMode/// 默认网址let defaultURL URL(string: "https://www.…