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

第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.lifecycleactivityimport android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivityclass 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.lifecycleactivityimport 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: ActivityMainBindingoverride 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.mrgr.cn/news/46066.html

相关文章:

  • 深入剖析递归算法:原理、特点、应用与优化策略
  • RDD的介绍、RDD的特点、创建RDD数据
  • 语音怎么识别转成文字?5个超实用方法了解一下(技巧)
  • 5.将扩散模型应用于具有特殊结构的数据
  • Spring系列 Bean的生命周期
  • 2024双十一买什么?双11好物清单来啦,速速码住这篇!
  • JSBSim脚本运行结果
  • 什么是超平面
  • PHP中的HTTP请求:获取taobao商品数据的艺术
  • Linux中定时删除10天前的日志文件
  • 关键字整理
  • 【汇编语言】寄存器(CPU工作原理)(五)—— 段寄存器以及CS和IP
  • 千寻位置大气增强服务为高效农耕作业保驾护航
  • Elastisearch查询最近一年消费金额排名前五的用户
  • 008集—— Keyword关键字及getstring的用法(CAD—C#二次开发入门)
  • YOLOv5改进——添加SimAM注意力机制
  • 通过Fiddler抓包采集某音作品列表,视频列表
  • 数学建模算法与应用 第1章 线性规划
  • AI视频技术如何应用在电影制作中,十大应用方向+商业案例告诉你
  • WebGIS包括哪些技术栈?怎么学习?