资讯中心

Android开发学习笔记——11、Activity启动与停止

📅 2026/7/27 21:12:02
Android开发学习笔记——11、Activity启动与停止
Activity 启动、停止与生命周期 学习笔记概述Activity 是Android四大组件中最重要、使用频率最高的组件代表可视化页面负责界面展示与用户交互。几乎所有App功能都依托Activity实现理解它的启停、生命周期、启动模式是Android开发基础。一、Activity 的启动与停止1. 启动方式① 显式启动App内部页面跳转最常用明确指定目标Activity类。// 当前页面跳转 SecondActivity val intent Intent(this, SecondActivity::class.java) startActivity(intent)适用场景本应用内部页面互相跳转。② 隐式启动跨App、调用系统功能不写目标类依靠Action行为匹配组件// 调用浏览器打开网页 val intent Intent(Intent.ACTION_VIEW, Uri.parse(https://www.baidu.com)) startActivity(intent)适用场景打开浏览器、相机、拨号、调用第三方App。2. Activity 停止关闭页面方式1finish() 关闭当前页面btn_back.setOnClickListener { finish() }作用将当前Activity从任务栈弹出触发销毁生命周期。 用户按下返回键系统底层自动调用finish()。方式2finishAffinity()关闭当前任务栈一组关联页面常用于退出登录回到首页。启停流程小结启动startActivity()→ 创建对象 → 执行生命周期回调 → 页面显示 停止finish()→ 执行销毁生命周期 → 页面回收二、Activity 生命周期6个核心回调方法附带最简示例class MainActivity : AppCompatActivity() { // 1.页面首次创建只执行1次初始化布局、控件 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } // 2.页面变为可见但还不能交互 override fun onStart() { super.onStart() } // 3.页面前台可见可以接收点击交互 override fun onResume() { super.onResume() } // 4.页面失去焦点被其他页面部分遮挡 override fun onPause() { super.onPause() } // 5.页面完全不可见 override fun onStop() { super.onStop() } // 6.页面最终销毁释放资源只执行1次 override fun onDestroy() { super.onDestroy() } }典型场景生命周期走向打开App进入页面onCreate → onStart → onResumeA页面跳转B页面 AonPause → onStopBonCreate → onStart → onResume点击Home键退桌面当前页面onPause → onStop返回键关闭页面onPause → onStop → onDestroy开发规范 onCreate加载布局、findViewById onDestroy释放监听、关闭资源三、Activity 启动模式作用控制任务栈中Activity实例创建规则在AndroidManifest.xml设置activity android:name.MainActivity android:launchModesingleTask /activity任务栈规则后进先出。1. standard 默认模式android:launchModestandard规则每次启动都新建实例无论栈内是否存在。 场景普通详情页、临时页面。2. singleTop 栈顶唯一android:launchModesingleTop规则 目标Activity已经在栈顶→ 复用不新建回调onNewIntent()不在栈顶 → 创建新实例 场景防止重复多次打开同一个广告页面。3. singleTask 栈内唯一android:launchModesingleTask规则 栈内存在该实例 → 把它上方所有Activity全部销毁复用该实例触发onNewIntent()场景App首页从多级页面一键回到首页。4. singleInstance 独立任务栈android:launchModesingleInstance规则单独开辟新任务栈存放该页面全局唯一实例。 场景极少使用悬浮独立窗口类特殊需求。重点复用已有Activity实例时不会执行onCreate、onStart只会执行onNewIntent()。总结启动显式内部跳转、隐式系统/跨应用finish关闭页面生命周期六大回调区分「可见」和「可交互」状态按需加载释放资源四种launchMode控制任务栈实例创建逻辑依靠任务栈管理页面。