Android的activity学习笔记

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日

相关文章

  • 微信小程序实现双层嵌套菜单栏

    activeMenuIndex: 0, activeSubMenuIndex: 0 }, handleMenuClick(e) { const { index } = e.currentTarget.dataset; this.setData({ activeMenuIndex: index }); }, handleSubMenuClick(e) { co…

    other 2023年7月28日
    00
  • 总结一些你可能不知道的ip地址

    总结一些你可能不知道的IP地址攻略 在互联网上,IP地址是用于标识和定位设备的唯一数字地址。大多数人熟悉常见的IP地址,如192.168.0.1或者8.8.8.8,但是还有许多其他的IP地址可能会让你感到惊讶。以下是一些你可能不知道的IP地址的示例: 1. 127.0.0.1 这是一个特殊的IP地址,被称为\”本地回环地址\”或\”环回地址\”。它用于在本地…

    other 2023年7月29日
    00
  • Android 6.0指纹识别App开发案例

    Android 6.0指纹识别App开发案例 简介 Android 6.0引入了指纹识别API,使得开发者可以在应用中集成指纹识别功能,提供更安全和便捷的用户体验。本文将详细介绍如何在Android应用中实现指纹识别功能。 步骤 步骤1:添加权限和依赖 首先,在AndroidManifest.xml文件中添加指纹识别所需的权限: <uses-permi…

    other 2023年10月15日
    00
  • [下载]安卓6.0/Android M第三个开发者预览版固件下载地址

    下载安卓6.0/Android M第三个开发者预览版固件下载地址 安卓6.0/Android M第三个开发者预览版现已推出,下载地址如下: 步骤1:为您的设备下载正确的固件 请确保您下载的固件与您的设备和型号相匹配,以避免因下载错误的固件导致问题。 示例说明1:如果您的设备是Nexus 6,那么您应该下载“shamu”的固件。 示例说明2:如果您的设备是Ne…

    other 2023年6月26日
    00
  • java中static的用法及注意点

    当我们在Java中使用static关键字时,它通常意味着属性或方法被定义在类级别上,而不是被定义在实例级别上。这意味着所有的类实例(即对象)共享该属性或方法。下面是Java中使用static时的用法和注意点的详细攻略。 静态变量和静态方法 在Java中使用静态变量和静态方法时,它们声明为静态成员,则它们属于类,而不属于该类的对象。这意味着可以在不实例化类的情…

    other 2023年6月27日
    00
  • Java 精炼解读数据结构逻辑控制

    “Java 精炼解读数据结构逻辑控制” 是一本介绍如何用Java语言实现数据结构和逻辑控制流的书籍。以下是一份完整攻略,包含了阅读这本书需要了解和应掌握的内容、如何在学习中获取帮助、如何同步代码。 阅读前必备知识 在阅读 “Java 精炼解读数据结构逻辑控制” 前,你需要掌握以下知识: 基本的Java语言知识,包括变量、数据类型、运算符、流程控制等; 面向对…

    other 2023年6月27日
    00
  • PHP设计模式(五)适配器模式Adapter实例详解【结构型】

    下面我将详细讲解“PHP设计模式(五)适配器模式Adapter实例详解【结构型】”的完整攻略。 一、什么是适配器模式 适配器模式是一种结构型设计模式,旨在将不相容的对象通过适配器进行转换,使得原本不能一起工作的对象能够配合工作。 二、适配器模式的角色 适配器模式涉及以下几种角色: 目标(Target):定义客户端使用的接口,这个接口可以是抽象类或接口。 源(…

    other 2023年6月26日
    00
  • 详解Spring加载Properties配置文件的四种方式

    下面是Spring加载Properties配置文件的四种方式的详细攻略。 一、通过@PropertySource注解加载 通过在Spring配置类上添加@PropertySource注解来加载Properties配置文件,可以通过value属性指定配置文件位置,也可以通过classpath属性来指定配置文件在类路径下的位置。 @Configuration @…

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