• 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中的注册部分加一句风格设定就行

     打开新的Activity

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

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

    关闭当前 Activity

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

    finish();

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

    1. package com.example.multipleactivity;
    2. import android.content.Intent;
    3. import android.os.Bundle;
    4. import android.util.Log;
    5. import android.view.View;
    6. import android.widget.Button;
    7. import androidx.appcompat.app.AppCompatActivity;
    8. public class Play extends AppCompatActivity {
    9. private static final String TAG = "i道iPlay";
    10. Button Main, Back;
    11. private final View.OnClickListener onClickListener = new View.OnClickListener() {
    12. @Override
    13. public void onClick(View view) {//点击事件
    14. Button button = (Button) view; //把点击获得的id信息传递给button
    15. try {
    16. if(button.getId() == R.id.button_goto_Main){
    17. Intent intent = new Intent();
    18. intent.setClass(Play.this, MainActivity.class);
    19. startActivity(intent);
    20. } else if(button.getId() == R.id.button_goto_Back){
    21. finish();
    22. }else {
    23. Log.e(TAG, "未知按钮组件调用");
    24. }
    25. } catch (Exception e) {
    26. Log.e(TAG, "main,error");
    27. }
    28. }
    29. };
    30. @Override
    31. protected void onCreate(Bundle savedInstanceState) {
    32. super.onCreate(savedInstanceState);
    33. setContentView(R.layout.activity_play);
    34. Main = findViewById(R.id.button_goto_Main);
    35. Back = findViewById(R.id.button_goto_Back);
    36. Main.setOnClickListener(onClickListener);
    37. Back.setOnClickListener(onClickListener);
    38. Log.e(TAG,"onCreate 创建 初始化");
    39. }
    40. @Override
    41. protected void onStart() {
    42. super.onStart();
    43. Log.e(TAG,"onStart 显示 不能交互");
    44. }
    45. @Override
    46. protected void onResume() {
    47. super.onResume();
    48. Log.e(TAG,"onResume 可交互");
    49. }
    50. @Override
    51. protected void onRestart() {
    52. super.onRestart();
    53. Log.e(TAG,"onRestart 重新启动");
    54. }
    55. @Override
    56. protected void onPause() {
    57. super.onPause();
    58. Log.e(TAG,"onPause 暂停(可见,不可操作)");
    59. }
    60. @Override
    61. protected void onStop() {
    62. super.onStop();
    63. Log.e(TAG,"onStop 停止(不可见)");
    64. }
    65. @Override
    66. protected void onDestroy() {
    67. super.onDestroy();
    68. Log.e(TAG,"onDestroy 销毁");
    69. }
    70. @Override
    71. protected void onRestoreInstanceState(Bundle savedInstanceState) {
    72. super.onRestoreInstanceState(savedInstanceState);
    73. Log.e(TAG,"onRestoreInstanceState 获取保存数据");
    74. }
    75. @Override
    76. protected void onSaveInstanceState(Bundle savedInstanceState) {
    77. super.onSaveInstanceState(savedInstanceState);
    78. Log.e(TAG,"onSaveInstanceState 销毁时保存数据");
    79. }
    80. }

    Activity生命周期

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

    Activity生命周期展示

     

  • 相关阅读:
    C++ 异形窗口
    Java Map中如何获取Map集合中所有value呢?
    [De1CTF2019]Babylfsr
    vue3引入pinna配置使用
    【HMS Core】【FAQ】典型问题合集6
    重生奇迹MU天空之城玩转攻略
    Pro_11丨跟踪+目标出场自适应切换
    如何使用AI图片清晰度增强器软件增强和锐化图片、提高照片清晰度并去除噪点
    跨境电商网站建设 三大跨境品牌厂商综合评测
    springboot项目Html页面引入css文件不生效
  • 原文地址:https://blog.csdn.net/weixin_58196051/article/details/133766828