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之间的跳转和数据传递,敬请期待~

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

相关推荐
Jomurphys11 小时前
Compose 适配 - 通过 UiMediaScope 获取设备信息
android·compose
阿巴斯甜11 小时前
必看12
android
阿巴斯甜11 小时前
必看11
android
solo_9911 小时前
Perftto 使用命令添加标签
android
阿巴斯甜11 小时前
必看10
android
阿巴斯甜11 小时前
必看9
android
阿巴斯甜12 小时前
必看6
android
angerdream12 小时前
Android手把手编写儿童手机远程监控App之SQLite详解
android
阿巴斯甜12 小时前
必看5
android
雪铃儿13 小时前
Shorebird 之外,Flutter Android 热更新还有什么选择
android·前端