Android?Activity!!!

作为Android开发新手,接触的第一个核心组件,必然是「活动(Activity)」。很多人刚开始学习时会困惑:Activity到底是什么?它在App里扮演什么角色?为什么说掌握它是入门Android的关键?今天就用最通俗的语言,结合简单实操,带大家走进Activity的世界,避开新手常见的坑,快速建立对它的基础认知。

一、什么是Activity?用生活场景读懂它

官方定义说,Activity是Android应用中负责显示用户界面(UI)和处理用户交互的核心组件,每个Activity通常对应一个屏幕界面------这句话听起来有点抽象,我们用生活场景类比一下就好理解了。

打开微信,你看到的聊天列表页面,是一个Activity;点击某个好友,进入的聊天对话页面,是第二个Activity;点击右上角加号,弹出的选择图片页面,是第三个Activity;切换到「我」的页面,又是一个新的Activity。简单来说,你在App里看到的每一个独立屏幕,本质上都是一个Activity

它就像一个个独立的"房间",App就是一栋房子,用户在房子里穿梭(切换页面),其实就是在不同的Activity之间跳转。每个"房间"都有自己的功能:有的用来展示内容,有的用来接收用户输入,有的用来完成特定操作,它们相互配合,构成了完整的App体验。

从技术层面来说,Activity是一个继承自AppCompatActivity(或Activity)的Java/Kotlin类,它负责管理页面的显示、用户的点击/滑动等交互操作,以及与其他组件的通信。没有Activity,App就没有可视化的界面,用户也无法与App进行任何交互。

二、Activity的三大核心特征,新手必记

想要快速掌握Activity,先记住它的三个核心特征,这能帮你更好地理解它的工作原理:

  1. 独立性:每个Activity都是一个独立的单元,拥有自己的生命周期和布局,互不干扰。就像每个房间都有自己的功能和布置,不会因为其他房间的变化而直接影响自己,即使一个 Activity出现问题,也不一定会导致整个App崩溃。

  2. 可交互性:Activity是用户与App交互的桥梁,它能接收用户的各种操作(点击按钮、输入文字、滑动屏幕等),并做出相应的响应。比如你点击"登录"按钮,Activity就会接收这个点击事件,然后执行登录逻辑。

  3. 可跳转性:Activity之间可以通过"意图(Intent)"相互跳转,还能传递数据。比如从登录Activity跳转至首页Activity,从首页Activity跳转至详情页Activity,跳转的过程就像从一个房间走到另一个房间,还能顺便带上"东西"(数据)。

三、Activity的生命周期:从"出生"到"消亡"的全过程

这是Activity最核心的知识点,也是新手最容易混淆的部分。Activity就像一个有生命的物体,从被创建、显示、交互,到被暂停、停止、销毁,会经历一系列固定的状态变化,这就是它的生命周期。

Android系统为Activity提供了6个核心回调方法,对应生命周期的不同阶段,我们用通俗的语言解释每个阶段的作用,不用死记硬背,理解即可:

  1. onCreate():创建阶段------Activity的"出生"。当系统首次创建Activity时调用,整个生命周期中只执行一次。在这里,我们通常会做一些初始化操作,比如加载布局文件、初始化控件、绑定数据等,就像给"房间"装修、布置家具。

  2. onStart():启动阶段------Activity"可见但不可交互"。当Activity即将显示在屏幕上时调用,此时用户能看到页面,但还不能进行点击等操作。比如你打开App,页面正在加载,能看到界面轮廓,但还不能点击按钮,就是处于这个阶段。

  3. onResume():恢复阶段------Activity"可见且可交互"。当Activity完全显示在屏幕上,并且获得焦点时调用,这是用户能正常操作页面的状态。比如你打开微信聊天页,能看到消息、能输入文字、能点击发送,就是处于这个阶段,也是我们最常接触的状态。

  4. onPause():暂停阶段------Activity"部分可见、不可交互"。当Activity被其他页面部分遮挡(比如弹出一个弹窗),或者用户切换到其他App(但未完全退出当前App)时调用。此时需要暂停一些耗时操作(比如视频播放),保存临时数据,避免资源浪费,就像你暂时离开房间,随手暂停正在播放的电视。

  5. onStop():停止阶段------Activity"完全不可见"。当Activity被其他页面完全遮挡,或者用户按下Home键退到桌面时调用。此时可以释放一些非必要的资源(比如停止后台线程),但不会销毁Activity,就像你离开房间,关上房门,房间还在,只是你看不到了。

  6. onDestroy():销毁阶段------Activity的"消亡"。当Activity被系统销毁(比如用户退出App、系统回收内存)时调用,整个生命周期中只执行一次。在这里,我们需要释放所有资源(比如关闭数据库、注销监听),避免内存泄露,就像你彻底拆除房间,清理所有东西。

补充一点:除了这6个核心方法,还有一个onRestart()方法,当Activity从停止状态重新启动时调用(比如用户退到桌面后,又重新打开App),之后会依次执行onStart()、onResume(),回到可交互状态。

记住一个关键:生命周期的设计,本质上是为了让我们在不同阶段精准控制Activity的行为,避免闪退、卡顿、内存泄露等问题。比如在onPause()暂停视频,在onStop()释放资源,在onDestroy()清理残留,这些都是新手必须掌握的基础逻辑。

四、新手实操:创建你的第一个Activity

理论说完,我们来做一个最简单的实操,用Android Studio创建第一个Activity,感受一下它的工作流程(假设你已经安装好Android Studio,创建好基础项目):

步骤1:创建Activity类

在Android Studio中,右键点击包名 → New → Activity → Empty Activity,命名为MainActivity(默认就是这个名字,不用修改),勾选"Generate Layout File"(自动生成布局文件),点击Finish。

生成的代码如下(Java版本,适配Java开发习惯,注释清晰易懂):

复制代码
复制代码
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 加载布局文件,将布局与Activity关联
        setContentView(R.layout.activity_main);
    }
}

这里的onCreate()方法就是我们刚才说的"创建阶段",setContentView(R.layout.activity_main)就是加载布局文件,让Activity显示我们设计的界面。

步骤2:设计布局文件

布局文件位于res/layout/activity_main.xml,我们简单修改一下,添加一个文本和一个按钮,让界面更直观:

复制代码
复制代码
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="20dp">

    <TextView
        android:id="@+id/tvHello"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我的第一个Activity"
        android:textSize="24sp"
        android:textColor="#000000"/>

    <Button
        android:id="@+id/btnClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击我"
        android:layout_marginTop="20dp"/>

</LinearLayout>

步骤3:注册Activity(关键!)

每个Activity都必须在AndroidManifest.xml中注册,否则App会崩溃。幸运的是,Android Studio创建Activity时会自动注册,我们打开AndroidManifest.xml,能看到如下代码:

复制代码
复制代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myfirstapp">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="我的第一个App"
        android:theme="@style/Theme.MyFirstApp">
        <!-- 主Activity,应用的入口 -->
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

其中,<intent-filter>里的配置表示MainActivity是App的主Activity,也就是用户打开App时首先看到的页面。如果没有注册Activity,运行App时会报ActivityNotFoundException异常,这是新手最容易踩的坑之一。

步骤4:运行测试

点击Android Studio右上角的"Run"按钮,等待模拟器启动,就能看到我们创建的Activity界面:一个显示"我的第一个Activity"的文本,和一个"点击我"的按钮。虽然这个界面很简单,但它已经是一个完整的Activity了------能显示、能被用户看到,这就是我们入门的第一步。

五、新手常见坑点,避坑指南

刚开始学习Activity,很容易遇到一些问题,这里总结3个最常见的坑,帮你少走弯路:

  1. 忘记注册Activity:如刚才所说,所有Activity必须在AndroidManifest.xml中注册,否则会崩溃。如果创建Activity时没有自动注册,一定要手动添加,或者重新创建Activity并勾选"Generate Layout File"。

  2. 生命周期方法调用顺序混乱:不用死记硬背顺序,记住一个简单的流程即可:启动App → onCreate() → onStart() → onResume()(可交互);退到桌面 → onPause() → onStop();重新打开App → onRestart() → onStart() → onResume();退出App → onPause() → onStop() → onDestroy()。

  3. 横竖屏切换导致Activity重启:默认情况下,当手机横竖屏切换时,Activity会被销毁并重新创建(依次执行onPause() → onStop() → onDestroy() → onCreate() → onStart() → onResume()),这会导致页面数据丢失。解决方法是在AndroidManifest.xml的Activity标签中添加配置:android:configChanges="orientation|keyboardHidden|screenSize",这样横竖屏切换时Activity就不会重启了。

六、总结:Activity是入门的钥匙,也是进阶的基础

对于Android新手来说,Activity是第一个需要掌握的核心组件,它承载了App的可视化界面和用户交互,就像盖房子的"地基"------只有把地基打牢,后续学习其他组件(Service、BroadcastReceiver等)才会更轻松。

今天我们了解了Activity的定义、特征、生命周期,还完成了第一个Activity的创建和运行,避开了新手常见的坑。接下来,你可以尝试给按钮添加点击事件,实现Activity之间的跳转,或者在生命周期方法中添加日志,观察它的调用顺序,慢慢加深对它的理解。

Android开发没有捷径,一步一个脚印,从掌握Activity开始,慢慢解锁更多知识点,你会发现开发App其实并没有那么难。下一篇,我们会聊聊Activity之间的跳转和数据传递,敬请期待~

最后,如果你在学习过程中遇到问题,欢迎在评论区留言,一起交流进步!

相关推荐
重生之我在安卓搞音频3 小时前
二、Android 音频框架
android·音视频
studyForMokey3 小时前
【Android面试】Java专题 todo
android·java·面试
代码改善世界3 小时前
【MATLAB初阶】矩阵操作(二):矩阵的运算
android·matlab·矩阵
九皇叔叔3 小时前
MySQL实操指南:复制表及数据复制全解析
android·数据库·mysql
梦想不只是梦与想3 小时前
flutter 与 Android iOS 通信?以及实现原理(一)
android·flutter·ios·methodchannel·eventchannel·basicmessage
Lambert_lin05 小时前
Android grade9.0 之后 自定义apk 名称
android·kotlin
fengci.5 小时前
ctfshow其他(web408-web432)
android·开发语言·前端·学习·php
Kapaseker5 小时前
“点击显示全文” — Compose 实现
android·kotlin
lxysbly5 小时前
安卓土星ss模拟器下载(支持中文、金手指)
android