当前位置: 首页 > article >正文

第3天:Android应用组件

第3天:Android应用组件(Kotlin版本)

欢迎来到第3天的Android编程教程!今天我们将深入了解Android应用的四大组件,以及如何管理Activity的生命周期。我们将使用Kotlin来实现示例代码,并学习如何使用Logcat来调试和观察日志。


本章节学习内容代码链接:链接:Android应用组件

课程目标

  • 理解Android的四大应用组件及其作用
  • 掌握Activity的生命周期及其管理
  • 实践创建自定义Activity并观察生命周期方法
  • 学会使用Logcat过滤器查看日志

3.1 Android四大应用组件概述

3.1.1 Activity(活动)

  • 定义:Activity是应用的一个单一屏幕,用户可以在其中执行操作。
  • 作用:提供用户界面,处理用户交互。
  • 示例:登录界面、设置页面、主界面等。

3.1.2 Service(服务)

  • 定义:Service是应用在后台执行长时间运行操作的组件。
  • 作用:执行后台任务,如播放音乐、下载文件等。

3.1.3 Broadcast Receiver(广播接收器)

  • 定义:Broadcast Receiver用于接收和响应系统或应用发送的广播消息。
  • 作用:监听系统事件(如电量低、网络连接变化)或应用内的自定义事件。

3.1.4 Content Provider(内容提供者)

  • 定义:Content Provider用于在应用之间共享数据。
  • 作用:提供标准接口,允许其他应用访问或修改数据。

3.2 Activity生命周期详解

3.2.1 生命周期方法

  • onCreate():Activity创建时调用,用于初始化组件。
  • onStart():Activity对用户可见但未获得焦点时调用。
  • onResume():Activity获得用户焦点并可交互时调用。
  • onPause():系统准备启动或恢复另一个Activity时调用,用于保存数据或释放资源。
  • onStop():Activity不再对用户可见时调用。
  • onDestroy():Activity被销毁前调用。
  • onRestart():Activity从停止状态重新启动时调用。

3.2.2 生命周期图示

onCreate()
    ↓
onStart()
    ↓
onResume()
    ↓
(Activity运行中)
    ↓
onPause()
    ↓
onStop()
    ↓
onDestroy()

3.3 实践实例:自定义Activity并打印生命周期日志

3.3.1 创建自定义Activity

  1. 创建新Activity

    • app/src/main/java/your/package/name/目录下,右键点击选择New > Activity > Empty Activity
    • 命名为LifecycleActivity,点击Finish
  2. 更新AndroidManifest.xml

    确保新创建的Activity已在AndroidManifest.xml中注册。

    <activity android:name=".LifecycleActivity"></activity>
    

3.3.2 添加日志打印

LifecycleActivity.kt中,覆盖各个生命周期方法并添加日志打印。

package com.example.lifecycleactivity

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

class LifecycleActivity : AppCompatActivity() {

private val TAG = "LifecycleActivity"

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_lifecycle)
Log.d(TAG, "onCreate called")
}

override fun onStart() {
super.onStart()
Log.d(TAG, "onStart called")
}

override fun onResume() {
super.onResume()
Log.d(TAG, "onResume called")
}

override fun onPause() {
super.onPause()
Log.d(TAG, "onPause called")
}

override fun onStop() {
super.onStop()
Log.d(TAG, "onStop called")
}

override fun onRestart() {
super.onRestart()
Log.d(TAG, "onRestart called")
}

override fun onDestroy() {
super.onDestroy()
Log.d(TAG, "onDestroy called")
}
}

3.3.3 更新布局文件

res/layout/activity_lifecycle.xml中,添加一个按钮用于启动和关闭LifecycleActivity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lifecycle Activity" />
</LinearLayout>

3.3.4 实现按钮点击事件

MainActivity.kt中,添加按钮的点击事件,启动LifecycleActivity

package com.example.lifecycleactivity

import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.lifecycleactivity.databinding.ActivityMainBinding // 确保路径正确

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// 使用视图绑定
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)

// 设置按钮点击事件
binding.btnStartActivity.setOnClickListener {
val intent = Intent(this, LifecycleActivity::class.java)
startActivity(intent)
}
}
}

3.3.5 运行应用并观察日志

  1. 运行应用

    • 点击Android Studio的运行按钮,选择一个模拟器或真机运行应用。
  2. 启动LifecycleActivity

    • MainActivity中,点击“启动 LifecycleActivity”按钮。
    • 观察日志输出,应该依次打印onCreateonStartonResume
  3. 返回MainActivity

    • 按下返回键或使用手势返回到MainActivity
    • 观察LifecycleActivity中的onPauseonStoponDestroy被调用的日志。

3.3.6 日志输出示例

D/LifecycleActivity: onCreate called
D/LifecycleActivity: onStart called
D/LifecycleActivity: onResume called
// 当返回主界面时
D/LifecycleActivity: onPause called
D/LifecycleActivity: onStop called
D/LifecycleActivity: onDestroy called

3.3.7 分析日志

通过观察日志,你可以清晰地看到Activity在不同状态下调用的生命周期方法。这有助于理解Activity的行为,并在实际开发中合理管理资源和数据。


3.4 Logcat 过滤器设置

在Android Studio中设置Logcat过滤器的步骤如下:

  1. 打开 Logcat

    • 在Android Studio底部工具窗口中点击 Logcat 标签。
  2. 选择应用程序

    • 在Logcat窗口的顶部,有一个下拉菜单,选择你的应用程序包名,以只查看该应用的日志。
  3. 设置日志级别

    • 在下拉菜单中选择日志级别,例如 DebugVerbose,以确保看到所有日志。
  4. 使用搜索框

    • 使用Logcat窗口顶部的搜索框,输入关键字(例如LifecycleActivity)以过滤特定日志。

3.5 课后练习

  1. 扩展LifecycleActivity

    • LifecycleActivity的布局中添加更多UI组件,如TextView和按钮。
    • 在各个生命周期方法中更新TextView的内容,显示当前生命周期状态。
  2. 创建其他组件

    • 尝试创建一个简单的Service,观察其生命周期。
    • 创建一个Broadcast Receiver,监听特定的系统广播(如网络变化)。
  3. 思考与总结

    • 为什么理解Activity的生命周期对应用开发至关重要?
    • 在实际项目中,你会如何利用生命周期方法优化应用性能?

3.6 小结

今天,我们深入了解了Android的四大应用组件及其作用,重点掌握了Activity的生命周期。通过实践创建并观察Activity的生命周期方法,你对应用组件的理解更加深入。这些知识将在后续的开发中为你提供坚实的基础。

继续保持学习的热情,明天我们将探索用户界面和布局的设计与实现!

祝学习愉快!


http://www.kler.cn/news/339883.html

相关文章:

  • Bean的实例化方式
  • 图解 Transformer
  • 基于Kafka2.1解读Producer原理
  • 【LeetCode刷题记录】45.跳跃游戏 II
  • 45岁被裁员的程序员,何去何从?
  • 等保测评:企业如何进行安全的软件更新与补丁管理
  • 如何设计三极管放大电路?
  • 上海AI Lab视频生成大模型书生.筑梦环境搭建推理测试
  • 正则表达式【JavaScript】
  • Spring Boot快速入门:HelloWorld示例
  • UI自动化测试示例:python+pytest+selenium+allure
  • SDUT数据结构与算法第一次机测
  • SQLITE 构建多表查询
  • UE4 材质学习笔记03(翻书(Flipbook)动画/环境混合)
  • JUC高并发编程6:Callable接口
  • 海报设计模板免费的好用吗?活动海报排版技巧轻松get
  • class 004 选择 冒泡 插入排序
  • CNAI趋势下,打造一体化AI赋能平台
  • 浅学React和JSX
  • Redis 实现 查找附近的人 功能