安卓面经_安卓基础面全解析(1/30)Activity全解析

系列专栏:




本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业安卓开发经验,该专栏整理本人对常见安卓高频开发面试题的理解;

网上安卓资料千千万,笔者将继续维护专栏,一杯奶茶价格不止提供答案解析,更有专栏内容免费技术答疑。助您提高安卓面试准备效率,为您面试保驾护航!

正文开始⬇

Activity是Android四大组件之一,是面试官最喜欢问的。如果面试官问你:

  1. 请介绍Activity的生命周期?⭐⭐⭐⭐⭐
  2. 请介绍Activity的启动模式?⭐⭐⭐⭐
  3. 请说下切换横竖屏时 Activity的生命周期变化?⭐⭐⭐⭐
  4. 请介绍Activity的启动流程?(进阶题)⭐⭐⭐⭐
  5. 请介绍Android应用程序的启动流程?(进阶题)⭐⭐⭐⭐

看完以下几点回答,一定可以让面试官眼前一亮。

目录

  • 1、什么是Activity
  • 2、Activity的生命周期
    • 2.1 生命周期的几种常见情况
  • 3、切换横竖屏时,Activity的生命周期变化
    • 3.1 正常情况
    • 3.2 配置 android:configChanges
  • 4、Activity的启动模式
    • 4.1 四大启动模式
      • Standard
      • singleTop
      • singleTask
      • SingleInstance
    • 4.2 进阶题:谈谈四大启动模式对应的使用场景
    • 4.3 如何设置启动模式

1、什么是Activity

Activity(活动)是一个为实现交互而提供的Android应用组件。每个Activity都有一个窗口,该窗口可以全屏幕填充,也可以是一个小窗口浮动在其他窗口上。一个应用程序通常由多个Activity组成,它会指定应用程序中的某个Activity作为主Activity,这意味着当用户第一次启动应用程序时呈现给用户的活动,并且Activity可以相互跳转来执行不同的操作。

2、Activity的生命周期

先上一个官方图:

图片说明

在正常情况下,一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory()。包含了六个部分,还有一个onRestart()没有调用,我们先介绍这六部分内容,因为这六部分 两两对应。 初学者可以将这六部分这么记:创建一个活动->可以见到该活动显示在屏幕->该活动可以触摸操作->该活动停止,不可以操作->该活动从屏幕上消失,看不到了->该活动销毁。这六个步骤就和上面六个函数一一对应。

(1) Oncreate():创建:作为生命周期的第一种方法,仅在新的Activity创建时调用。在这个方法中,可以做一些初始化工作,比如加载接口布局资源和初始化活动所需的数据。

(2) OnStart():开始:表示Activity正在启动,并且即将启动。此时Activity已经出现,但还没有出现在前台,我们还不能交互。

(3) OnResume():活动:表示Activity已经出现在前台,可见可操作。

(4) OnPause():暂停:表示活动即将停止,仍然可见,但是不能操作了。

(5) OnStop():停止:表示活动停止,此时不可见,位于后台。

(6) OnDestory():销毁:表示活动即将被销毁。这是Activity循环的最后一个回调。你可以做一些回收工作和最后的资源回收。

最后介绍第七个生命周期onRestart:

(7) OnRestart():表示Activity重启。在正常情况下,当Activity从不可见状态切换到可见状态,也就是onStop()到onStart()之间,就会调用OnRestart()。这种情况一般是由用户行为引起的。例如,用户在这个活动切换到桌面或打开另一个新的活动,然后用户返回到这个活动。

2.1 生命周期的几种常见情况

①启动ActivityA:onCreate()->onStart()->onResume()

②打开新的ActiviyB的时候,上述ActivityA的回调如下:onPause()->onStop()

③接着再次回到原ActivityA时,ActivityA的回调如下:onRestart()->onStart()->onResume()

④按back键回退ActivityA时,Activ

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Android高频面试题全解析 文章被收录于专栏

#提供免费售后答疑!!花一杯奶茶的钱获得安卓面试答疑服务,稳赚不赔# Android发展已经很多年,安卓资料网上千千万,本专栏免费提供专栏内容技术答疑!!私聊当天必回。在阅读过程或者其他安卓学习过程有疑问,都非常欢迎私聊交流。

全部评论
满满的干货,感谢分享
2 回复 分享
发布于 2022-09-11 18:24 陕西
2.1中⑥,finlish的回调和不应该也是pause->stop->destroy吗
1 回复 分享
发布于 2024-04-13 01:43 陕西
需要启动流程
点赞 回复 分享
发布于 10-20 17:15 河北
本篇没有介绍activity启动流程
点赞 回复 分享
发布于 2024-02-19 11:10 北京
4.2 进阶题:谈谈四大启动模式对应的使用场景 TODO完成了吗?
点赞 回复 分享
发布于 2023-09-24 17:45 北京
棒:节约时间、查漏补缺、疑惑解答 期待更新,希望加速
点赞 回复 分享
发布于 2023-02-13 09:50 广东

相关推荐

想干测开的tomca...:让我来压力你!!!: 这份简历看着“技术词堆得满”,实则是“虚胖没干货”,槽点一抓一大把: 1. **项目描述是“技术名词报菜名”,没半分自己的实际价值** 不管是IntelliDoc还是人人探店,全是堆Redis、Elasticsearch、RAG这些时髦词,但你到底干了啥?“基于Redis Bitmap管理分片”是你写了核心逻辑还是只调用了API?“QPS提升至1500”是你独立压测优化的,还是团队成果你蹭着写?全程没“我负责XX模块”“解决了XX具体问题”,纯把技术文档里的术语扒下来凑字数,看着像“知道名词但没实际动手”的实习生抄的。 2. **短项目塞满超纲技术点,可信度直接***** IntelliDoc就干了5个月,又是RAG又是大模型流式响应又是RBAC权限,这堆活儿正经团队分工干都得小半年,你一个后端开发5个月能吃透这么多?明显是把能想到的技术全往里面塞,生怕别人知道你实际只做了个文件上传——这种“技术堆砌式造假”,面试官一眼就能看出水分。 3. **技能栏是“模糊词混子集合”,没半点硬核度** “熟悉HashMap底层”“了解JVM内存模型”——“熟悉”是能手写扩容逻辑?“了解”是能排查GC问题?全是模棱两可的词,既没对应项目里的实践,也没体现深度,等于白写;项目里用了Elasticsearch的KNN检索,技能栏里提都没提具体掌握程度,明显是“用过但不懂”的硬凑。 4. **教育背景和自我评价全是“无效信息垃圾”** GPA前10%这么好的牌,只列“Java程序设计”这种基础课,分布式、微服务这些后端核心课提都不提,白瞎了专业优势;自我评价那堆“积极认真、细心负责”,是从招聘网站抄的模板吧?没有任何和项目挂钩的具体事例,比如“解决过XX bug”“优化过XX性能”,纯废话,看完等于没看。 总结:这简历是“技术名词缝合怪+自我感动式凑数”,看着像“背了后端技术栈名词的应届生”,实则没干货、没重点、没可信度——面试官扫30秒就会丢一边,因为连“你能干嘛”都没说清楚。
点赞 评论 收藏
分享
评论
4
16
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务