Android的activity学习笔记

yizhihongxing

Android的Activity学习笔记

简介

在Android系统中,Activity是Android应用程序的核心组成部分之一,它可以提供用户界面,与用户进行交互,并协调应用程序的其他部分来完成任务。

本文将介绍Activity的基础知识,包括什么是Activity、Activity的生命周期、如何创建和销毁Activity、如何使用Intent启动Activity等。

什么是Activity

Activity 是 Android 应用程序的基础组件,它代表应用程序中的一个单独的屏幕界面,它负责绘制界面和处理与用户的交互。

每个 Activity 都会被封装在一个独立的进程中,并且可以独立启动和销毁。

Activity的生命周期

在 Android 系统中,每个 Activity 都有其特定的生命周期,它由一系列回调函数组成,Android 负责调用这些函数。Activity 的生命周期包括以下事件:

  • onCreate()
  • onStart()
  • onResume()
  • onPause()
  • onStop()
  • onRestart()
  • onDestroy()

在下面的示例中,我们将演示如何在 Activity 生命周期的每个阶段记录日志。

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG, "onCreate() called");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i(TAG, "onStart() called");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG, "onResume() called");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG, "onPause() called");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG, "onStop() called");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG, "onRestart() called");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG, "onDestroy() called");
    }
}

我们可以看到,MainActivity 的每个生命周期方法都被覆盖,并使用 Log.i() 方法记录在日志中。

创建和销毁Activity

要创建一个新的 Activity,我们可以使用 Intent 发送启动命令。在发送启动命令时,我们可以使用 startActivity() 或 startActivityForResult() 方法,具体取决于我们是否需要从新的 Activity 中接收结果。

下面是一个例子,演示如何启动另一个 Activity。

public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_CODE = 1;
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.btn_start_activity);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            String result = data.getStringExtra("result");
            Log.i(TAG, "Result: " + result);
        }
    }
}

在上面的例子中,我们创建了一个按钮,并在按钮点击事件中启动另一个 Activity(SecondActivity)。我们使用 startActivityForResult() 方法启动 SecondActivity,并指定一个 REQUEST_CODE 值,以便在 Activity 返回结果时能够识别它。

在 SecondActivity 中,我们可以通过调用 setResult() 方法设置返回数据,并在 Activity 结束时返回结果。

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Button button = findViewById(R.id.btn_return_result);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.putExtra("result", "Hello, World!");
                setResult(RESULT_OK, intent);
                finish();
            }
        });
    }
}

在上面的例子中,我们在点击按钮事件中设置结果,并使用 finish() 方法关闭当前 Activity。

总结

在本文中,我们介绍了 Activity 的基础知识,包括什么是 Activity、Activity 的生命周期、如何创建和销毁 Activity、如何使用 Intent 启动 Activity。Android 应用程序的开发人员需要深入了解 Activity 的生命周期,以便在开发应用程序时能够正确处理各种场景。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android的activity学习笔记 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 一、Linux 设备驱动介绍及开发环境搭建

    Linux 设备驱动介绍及开发环境搭建的完整攻略 一、Linux 设备驱动介绍 Linux 设备驱动是 Linux 操作系统中的一个重要组成部分,它负责管理硬件设备和操作系统之间的通信。Linux 设备驱动通常由内核模块和用户空间应用程序组成,内核模块负责与硬件设备进行通信,用户空间应用程序则负责与用户进行交互。 Linux 设备驱动的开发需要掌握 C 语言…

    other 2023年5月5日
    00
  • webpack转vite的详细操作流程与问题总结

    下面是“webpack转vite的详细操作流程与问题总结”的完整攻略。 1. 操作流程 1.1 安装Vite 首先需要安装Vite,可以通过npm进行安装: npm install vite –save-dev 1.2 配置文件迁移 将webpack的配置文件转换为vite的配置文件。在vite中,需要创建一个名为vite.config.js的文件来替换原…

    other 2023年6月27日
    00
  • springboot 中整合mybatis多数据源不使用JPA

    Spring Boot中整合MyBatis多数据源不使用JPA的完整攻略 1. 添加依赖 首先,在pom.xml文件中添加MyBatis和数据库驱动的依赖。例如,如果你使用MySQL数据库,可以添加以下依赖: <dependencies> <!– MyBatis –> <dependency> <groupId&…

    other 2023年10月12日
    00
  • vue实现一个懒加载的树状表格实例

    首先,我们需要明确什么是懒加载。懒加载即指仅当需要用到某个组件或数据时才进行加载,而不是一次性加载所有的数据和组件。在树状表格的场景中,懒加载指的是只有当节点被展开时才会加载子节点的数据。 接下来,我们将介绍如何使用vue实现一个懒加载的树状表格实例。 创建树状表格的基础组件 首先,我们需要创建一个基础的树状表格组件,包含展示数据所需要的功能,例如分页、排序…

    other 2023年6月27日
    00
  • PostgreSQL LIKE 大小写实例

    PostgreSQL LIKE 大小写实例攻略 在 PostgreSQL 中,LIKE 运算符用于模式匹配,可以根据指定的模式搜索字符串。默认情况下,LIKE 运算符是区分大小写的,这意味着它会将大写和小写字符视为不同的字符。下面是关于如何在 PostgreSQL 中使用 LIKE 运算符进行大小写匹配的攻略。 1. 大小写敏感匹配 要进行大小写敏感的匹配,…

    other 2023年8月16日
    00
  • Spring Boot MQTT Too many publishes in progress错误的解决方案

    问题描述: 在使用Spring Boot的MQTT时,可能会遇到“Too many publishes in progress”错误,导致MQTT的消息发送失败,解决方案是什么? 解决方案: 该错误的原因是MQTT的QoS策略引起的,可以通过以下方法解决: 1.调整QoS级别 QoS是Quality of Service的缩写,是MQTT协议中定义的三个消息…

    other 2023年6月26日
    00
  • 微软批量许可服务中心注册指南

    微软批量许可服务中心注册指南 微软批量许可服务中心(Volume Licensing Service Center,简称VLSC)是微软提供的一个在线服务平台,用于管理企业的软件许可证。本文将详细解VLSC的注册流程和注意事项,包括示例说明。 注册流程 步骤一:访问VLSC网 首先,访问VLSC网站(https://www.microsoft.com/Lic…

    other 2023年5月8日
    00
  • 苹果iOS9.1 Beta1开发者预览版和公共测试版已知Bug和问题大全

    苹果iOS9.1 Beta1开发者预览版和公共测试版已知Bug和问题大全 简介 苹果iOS 9.1是苹果公司发布的最新操作系统之一。随着开发者预览版和公共测试版的发布,用户可以在第一时间获取新的功能和特性,但也需要注意其中已知的Bug和问题。这份攻略将详细讲解iOS 9.1 Beta1的已知Bug和问题,以便用户更加了解系统并避免使用过程中遇到困难。 已知B…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部